阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系
2018-09-28 15:31
736 查看
性能指标的分类
为了更好的去监控整个系统的性能,做好全流程的优化,主要分为3类:
1.感知系统性能
这类指标主要从工程师的角度去衡量,如后端的:
- 响应时间
- 当前并发的用户数
- 请求数
- 请求的错误率等等。
2.用户体验性能
用户实际感觉网页是否加载延迟
- 首屏时间
- 白屏时间
- 完全加载时间之类
3.系统性能
这类指标重点查看服务器:
- 服务器的cpu
- 内存
- 网络带宽
- 流量等等物理资源。
对于上述的每一类,衡量标准可能都不一样,在数据展示方面,主要通过趋势图和汇总表格来展现,下面来对这3类指标分别细说:
感知系统性能
这类指标主要为工程师设计,来衡量业务后端的处理速度,主要从以下几个方面去衡量:
1) 响应时间
响应时间是性能的主要kpi。
首先对每个业务的整体(集群)响应时间有个衡量:
- 95%的响应时间 :将一段时间内所有请求的响应时间中取一个值,使95%的请求响应时间均小于或等于它,此值即为95%请求覆盖的响应时间。
- 90%的响应时间 :将一段时间内所有请求的响应时间中取一个值,使90%的请求响应时间均小于或等于它,此值即为90%请求覆盖的响应时间。
- 50%的响应时间 :将一段时间内所有请求的响应时间中取一个值,使50%的请求响应时间均小于或等于它,此值即为50%请求覆盖的响应时间。
另外为了方便工程师的优化,对具体到每个请求url都做了更精细化的统计,不光统计了上述的指标,还增加了:
- 最大响应时间 :某请求的某段时间范围内响应时间的最大值。
- 最小响应时间 : 某请求的某段时间范围内响应时间的最小值。
- 时间标准差 :某请求某段时间范围内的波动情况,用来衡量某请求是否存在很大波动,标准差越大,波动越大。
2)请求数(按天或小时统计)
根据不同的时间维度去统计系统每天或每小时的请求数。
3)错误率
关于错误率的统计主要有以下几种:
- connection timeout:http请求中出现504的次数和比例。
- error response:http请求中出现500的次数和比例。
- 错误网关数:http请求中出现502的次数和比例。
- 异常日志统计:统计业务中出现得异常的数量和趋势。
用户体验性能
这类指标从用户的角度出发,通过模拟用户请求或对真实用户抽样,来监控用户对网站的实际体验效果,主要利用js来收集不同浏览器下访问网站的加载速度和性能;对于一次完整用户请求来说,http请求可以划分为如下几个阶段:
- DNS:域名解析阶段,通常在几毫秒左右
- TCP:建立网络连接
- Requesting:发送请求
- WebServer处理
- Transferring:传输数据
- Parsing:浏览器解析。几个重要的时间点为:
- a. 首屏时间 客户端第一屏资源加载完毕
- b. domready时间 DOM解析完毕,可以进行动态修改
- c. load时间 所有资源加载完毕
对于上述的几个阶段,设立了多种时间参数(每个参数又有 90% 和 50% 两种指标)来衡量,具体如下:
- 查找域名 :开始查找域名到查找结束,计算公式为(domainLookupEnd - domainLookupStart)
- 建立连接 :开始发出连接请求到连接成功,计算公式为(connectEnd - connectStart)
- 请求文档 :开始请求文档到开始接收文档,计算公式为(responseStart - requestStart)
- 接收文档 :开始接收文档到文档接收完成,计算公式为(responseEnd - responseStart)
- domready :开始解析文档到 DOMContentLoaded 事件被触发,计算公式为(domContentLoadedEventStart - domLoading)
- load事件持续 :load 事件被触发到 load 事件完成,计算公式为(loadEventEnd - loadEventStart)
- 完全加载 :开始解析文档到文档完全加载,计算公式为(domComplete - domLoading)
- 首屏加载 :开始解析文档到首屏加载完毕,计算公式为(firstscreenready - domLoading)
- 完全加载 【全过程】:此次浏览最开始时刻到完全加载完毕,计算公式为(domComplete - navigationStart)
- 首屏加载 【全过程】:此次浏览最开始时刻到首屏加载完毕,计算公式为(firstscreenready - navigationStart)
其中不同的指标对于用户体验的影响权重不同,对于用户来说白屏时间(浏览最开始时刻到首屏加载前)和首屏时间是最重要的。
系统性能
这类指标主要监测目前服务器的
- cpu
- 内存
- 硬盘io率
- 网络带宽
- 流量等等物理资源的使用情况
这类指标比较常见,就不细说了,举几个例子。
1.cpu使用率监控图
2.服务的硬盘io监控图
3.服务的网络io监控图
总结
监控->分析->优化,号称是性能优化的三部曲,为了更容易地找到性能优化的关键点,建立一个统一的精细化的性能监控平台,做到数据驱动型的性能优化,是公司的长远目标,也是值得公司投入的一个方向, 性能优化,从监控开始 ,只有监控的性能指标体系建立好了,才能更好地去做分析和优化!
以上就是高并发网站优化体系的总结,以下是 最新阿里P8架构师谈架构设计系列 。
相关文章推荐
- 制定性能测试策略时,如何设计相应的系统用户数、同时在线并发用户数以及每个具体功能的并发用户数
- 系统性能指标:广义并发、狭义并发、吞吐量、平均响应时间、TPS、IOPS
- 在高并发的linux系统下如何提升性能统计tcp连接状态
- 高并发软件系统设计原理与实践(二)——性能指标
- 性能测试前期,如何对一个系统的并发量进行评估?
- 亿级Web系统搭建——单机到分布式集群
- 【转】【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群
- 如何通过sar快速定位制约系统性能的瓶颈
- 亿级Web系统搭建:单机到分布式集群【转】
- 如何搭建千万级别用户的应用系统
- 转---性能测试中如何确定并发用户数
- 不懂这些高并发分布式架构、分布式系统的数据一致性解决方案,你如何能找到高新互联网工作呢?强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构
- 如何搭建健身房教练私教器材设备微信公众号预约系统
- 亿级Web系统搭建——单机到分布式集群
- 微博遭鹿晗恋情暴击瘫痪,如何快速提高系统性能?
- 手把手教你如何选择一款好的性能管理系统?
- 徐汉彬:亿级Web系统搭建——单机到分布式集群(转载)
- 读懂服务器性能指标:拨开服务器评测体系迷雾
- 钟表维修管理系统技术解析(一) 如何搭建三层架构
- IO系统性能之一:衡量性能的几个指标(上)。