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

简介: 性能指标的分类为了更好的去监控整个系统的性能,做好全流程的优化,主要分为3类:1.感知系统性能这类指标主要从工程师的角度去衡量,如后端的:响应时间当前并发的用户数请求数请求的错误率等等。

性能指标的分类

为了更好的去监控整个系统的性能,做好全流程的优化,主要分为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架构师谈:如何搭建亿级并发系统的性能指标体系


总结

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


目录
相关文章
|
1月前
|
存储
嵌入式微处理器的系统架构中指令系统
嵌入式微处理器的系统架构中指令系统
12 0
|
2月前
|
缓存 NoSQL 关系型数据库
|
2月前
|
存储 前端开发 架构师
阿里资深架构师带你深入浅出JVM!
JVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area)
40 1
|
2月前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
304 6
|
1月前
|
存储 前端开发 BI
基于云计算技术的B/S架构智能云HIS系统源码 集挂号、处方、收费、取药、病历于一体
云HIS是针对中小医院机构、乡镇卫生室推出的一套基于云端的云HIS服务平台,借助云HIS,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云HIS主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管理,药库药品管理,报表查询。满足诊所、中小医院业务中看诊、收费、发药、药库管理、经营分析等多环节的工作需要。
41 4
|
2月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
77 0
|
28天前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
1月前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
44 0
|
1月前
|
存储 缓存 安全
【ARM架构】ARMv8-A 系统中的安全架构概述
【ARM架构】ARMv8-A 系统中的安全架构概述
31 0
|
2月前
|
前端开发 JavaScript Java
JavaFX学习笔记(三) 架构与图形系统
JavaFX学习笔记(三) 架构与图形系统