阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

栏目: 后端 · 发布时间: 6年前

内容简介:为了更好的去监控整个系统的性能,做好全流程的优化,主要分为3类:这类指标主要从工程师的角度去衡量,如后端的:对于上述的每一类,衡量标准可能都不一样,在数据展示方面,主要通过趋势图和汇总表格来展现,下面来对这3类指标分别细说:

性能指标的分类

为了更好的去监控整个系统的性能,做好全流程的优化,主要分为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% 两种指标)来衡量,具体如下:

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

  • 查找域名 :开始查找域名到查找结束,计算公式为(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使用率监控图

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

2.服务的硬盘io监控图

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

3.服务的网络io监控图

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

总结

监控->分析->优化,号称是性能优化的三部曲,为了更容易地找到性能优化的关键点,建立一个统一的精细化的性能监控平台,做到数据驱动型的性能优化,是公司的长远目标,也是值得公司投入的一个方向, 性能优化,从监控开始 ,只有监控的性能指标体系建立好了,才能更好地去做分析和优化!

以上就是高并发网站优化体系的总结,以下是 最新阿里P8架构师谈架构设计系列

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

最新阿里P8架构师系列资料

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

资料领取方法


以上所述就是小编给大家介绍的《阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript Patterns

JavaScript Patterns

Stoyan Stefanov / O'Reilly Media, Inc. / 2010-09-21 / USD 29.99

What's the best approach for developing an application with JavaScript? This book helps you answer that question with numerous JavaScript coding patterns and best practices. If you're an experienced d......一起来看看 《JavaScript Patterns》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具