当前位置: 首页 > news >正文

大型网站性能监测、分析与优化常见问题QA

图片描述
@tanwen110 (唐文),曾负责腾讯四大平台之一网络媒体平台的整体运维、运营规划工作;曾任百度T7架构师和百度性能优化TOPIC、百度UAQ、APM平台负责人;畅销书《海量运维、运营规划之道》作者; mmTrix创始人,后并入上市公司高升控股(000971.SZ),出任技术VP。

在互联网环境日益复杂的今天,性能优化的价值在不断提升。从用户体验到成本,各个方面都可产生收益,尤其在大型项目上这种收益更是呈现指数级的增加;另一方面,找到与竞争对手的性能差距,也是帮助产品超越对手的重要手段,性能的本质提升将大大助力项目突破难关。

图片描述

购买链接:http://item.jd.com/11962556.html

Q:基于rest的微服务,有什么好的监控方案推荐的,最好是对系统影响最小的

A:自定义给agent上报再通过关联关系可视化,前、后期的工作都较多。

Q:网站怎么做好防刷,分布式的多个节点怎么做好监控有啥好的建议不?

A:大一些的企业都有统一的七层接入层,在GSLB与LVS VIP之间,所有请求都会实时分析,同时会根据日常遇见的实际情况做好应对的策略模板,如封禁,清洗,导流等。滞后些的做法是打进来,在日志或逻辑层分析。

Q:对于高性能网站性能优化来说,由于涉及的方面太多太广,该先从哪方面着手呢,有没有什么步骤能做到有的放矢,做的事少而经济效益比较高。

A:前期系统、网络优化收益最大,一劳永逸,所有产品线收益。其次是前端优化,前端决定了渲染内容、结构和逻辑,针对性的优化收益也是非常明显的。但前端跟产品线走,而且产品迭代容易覆盖掉之前的优化收益。后端和移动性能优化需要的时间较长,出成果较慢。

Q:高并发下遇到瓶颈,一直对瓶颈的切入点不好把控,应该从哪方面开始入手呢?

A:导致瓶颈出现的原因很多,架构中的每一层都可能产生瓶颈和性能问题,需要具体问题具体分析。而且每天层和逻辑都存在容量和代码本身的可能。瓶颈定位是一个系统的工程。

Q: 使用 APM(应用性能管理)工具进行系统监控的原理一般是改写原来的字节码程序,植入自己的代码,请问,这种监控方式你推荐吗?这种方式对系统影响有多大

A: 前端JS和后端监测及移动的SDK、语言类的SDK是侵入式的,都会产生一定的副作用,通常可以抽样来减少这部分副作用。JS类的一般在150~200ms左右,语言类的要看具体的逻辑和访问量。

Q: 大型网站上,一般通过什么方式监控性能的?

A: 用户端主要是PC真机监测、PC JS监测,都属于真实用户监测。移动Web App使用JS监测,移动Native App使用SDK的方式。以上两类监测数据都较完整;有损失的监测还有在七层统一的接入也可以做请求到后端及后端返回数据的相关监测,后端打点等也是常用的方式。

Q:你好,请问你对分布式系统监控系统的设计时倾向于每个节点独立监控,然后在系统空闲的时候手动搜集;还是建立一个分布式的监控系统实时监控。感觉后者会增加系统复杂度让系统更难维护,但是前者会让搜集数据过少。如何权衡呢?谢谢

A:看企业所处的阶段,早期和小规模用前者,成长型企业用分布式。可持续看第二种的价值更大,复杂度、降低复杂度与价值去平衡。

Q:我们做了一个响应式拖拽建站系统,现在有个问题,如何监控每一个站点(域名)的流量情况,所有的http请求,而图片和视频这些资源可能会使用一些CDN的服务。我描述的不是很专业,还请不吝赐教。可以说几个点,我现在没有方向。

A: 因为使用CDN和多站点,多域名。CDN的流量数据在CDN服务商的日志中有才能体现。这两部分数据直接拼接是很困难的。可能根据PV、UV等经验值,从源站上反推。

Q:主要是通过什么进行性能监测的?目前觉得大型网站合理利用缓存很重要。

A: 目前主要有以下两种类型: 1、EUM,End user monitoring,最终用户性能监测。通过在最终用户设备上安装客户端的方式,通过主动监测获得采样的性能数据,Keynote是EUM的鼻祖,国内基调、博睿也属于EUM。

2、RUM,Real user monitoring ,真实用户性能监测。通过嵌码的方式获得全用户真实性能数据。嵌码方式分三种:网页嵌JS、移动APP嵌SDK、服务器端嵌代理。Newrelic和Appdynamics都支持这三种方式,国内基调、OneAPM也基本支持这三种方式。

Q: 您认为在未来随着固态硬盘等硬件成本降低、类redis内存数据库或cdn等缓存技术的发展,给性能测试的挑战是什么,我们是更应该着手架构还是代码逻辑还是其他方面?谢谢!

A: 硬件和缓存会影响后端的性能,性能是一个复杂的够成,往往用户端、终端产品形态,前端、网络是性能的重灾区。第二个问题,推荐从用户侧做性能优化更容易出收益,后端的优化代价和门槛都较高。

Q: 对APM服务有啥好的建议,包括选择,推荐

A: 首先需要理解各厂商和开源项目的原理,每家特点及技术团队的背景都不同,再结合多家优点解决面临的问题。目前国内、国外排前的厂商在网上也容易找到。如果是互联网企业,TO C类业务,我推荐用JS监测,PC、移动都容易上手,上线就有数据。

Q: 你好,之前在站点运营中常遇到“以空间换时间”的情况 比如加内存 升配置 加宽带 请教一些比较经济适用的方法 (其实程序的成本也是很高的,优化程序需要时间,程序只能说按照各框架规则写出常规的程序)虽然之前那些做法省去了开发成本 但无疑是增加了运营成本维护成本

A: 带宽的发生主要是前端内容,这里决定了主要成本,访问日志中可以分析出TOP带宽消耗的元素,针对带宽大户进行优化就好,性能和成本双重收益。后端升硬件配置,在时间和人力及不确定性的情况与没有选择的,但与架构、代码并行优化也是需要的。

本集Q&A来源于开源中国高手问答活动
图片描述

相关文章:

  • 导数组合的极限
  • JVM的粗略简述
  • jquery 重置表单
  • MyBatis 通过包含的jdbcType类型
  • nginx+tomcat+memcached 集群环境搭建
  • 【ISC安全训练营】挑战价格极限第三天!!![北京]
  • rownum order by
  • UVa712 S-Trees
  • 线程池
  • TYVJ P1020 寻找质因数
  • 疯狂ios讲义之使用CoreLocation定位(4)
  • 前进的方向不一定都是对的,但是探索本身无法改变
  • TCP拥塞控制
  • JS 下拉菜单
  • usr/bin/ld: cannot find -lxxx
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 2017前端实习生面试总结
  • 3.7、@ResponseBody 和 @RestController
  • conda常用的命令
  • JavaScript的使用你知道几种?(上)
  • Java的Interrupt与线程中断
  • select2 取值 遍历 设置默认值
  • spring学习第二天
  • vue.js框架原理浅析
  • 包装类对象
  • 离散点最小(凸)包围边界查找
  • 前端性能优化——回流与重绘
  • 如何解决微信端直接跳WAP端
  • 如何使用 JavaScript 解析 URL
  • 用jquery写贪吃蛇
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #、%和$符号在OGNL表达式中经常出现
  • #if 1...#endif
  • #微信小程序(布局、渲染层基础知识)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (九)信息融合方式简介
  • (力扣)1314.矩阵区域和
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)大型网站的系统架构
  • (转)项目管理杂谈-我所期望的新人
  • .net 受管制代码
  • .NET/C# 使用反射注册事件
  • .NET单元测试
  • .NET文档生成工具ADB使用图文教程
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .Net语言中的StringBuilder:入门到精通
  • /proc/vmstat 详解
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 转载 ] SharePoint 资料
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  • [iOS]iOS获取设备信息经常用法
  • [LeetCode][138]【学习日记】深拷贝带有随机指针的链表