P95P99.9百分位数值——服务响应时间的重要衡量指标Silentdoer

其中比较常用的值就是平均值,例如平均耗时为100ms,表示服务器当前请求的总耗时/请求总数量,通过该值,我们大体能知道服务运行情况。

平均值并不能反映数据分布及极端异常值的问题,这时我们可以使用百分位数值。

百分位数值是一个统计学中的术语。

如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数

在真正使用过程中,最常用的主要有P50(中位数)、P95、P99。

P95:响应耗时从小到大排列,顺序处于95%位置的值即为P95值。

意思是说,我们对95%的用户的响应耗时在200ms之内,只有5%的用户的响应耗时大于200ms,据此,我们掌握了更精确的服务响应耗时信息。

P99.9:许多大型的互联网公司会采用P99.9值,也就是99.9%用户耗时作为指标,意思就是1000个用户里面,999个用户的耗时上限,通过测量与优化该值,就可保证绝大多数用户的使用体验。至于P99.99值,优化成本过高,而且服务响应由于网络波动、系统抖动等不能解决之情况,因此大多数时候都不考虑该指标。

下图是我从我们系统中随便拉的两个接口的性能监控数据,我们可以看到第一个均值在40ms,P95在82.5ms,看似还可以,但是P99.9却是1743ms。

image-20210129075549027

以上两个接口如果单纯只看均值指标,并没有什么问题,但是P95和P99.9却反映了我们一些慢请求的情况。拿到这个指标数据,我们就知道我们的服务并非没有问题,就可以去优化这两个指标的值,以达到更好的用户体验。3如何计算百分位数值

平均值之所以会成为大多数人使用衡量指标,其原因主要在于他的计算非常简单。请求的总耗时/请求总数量就可以得到平均值。而P值的计算则相对麻烦一些。

按照传统的方式,计算P值需要将响应耗时从小到大排序,然后取得对应百分位之值。

如果服务qps较低,例如:100/秒,我们计算这1s内的P值,就记录这100请求的耗时数据,然后排序,然后取得P分位值,并非难事。但如果我们要计算1h内的p值呢,就是要对360000的数据进行排序然后取得P分位值。而如果对于一些用户量更大的系统,例如:QPS30万/秒,那么1h内的p值如果还是采用记录+排序的方式,就是要对十个多亿的数据进行排序,可想而知需要消耗多么大的内存与计算资源。

那么有没有简单的计算方式呢?

可以采用分桶计算的方式,即一个耗时范围一个桶,该计算方式虽不是完全准确值,但精度非常高,误差较小。

直方图

这样就避免了对全部数据进行排序,只需要根据各个桶中的数据数量,即可计算出95%位置位于哪个桶,例如需要计算95线时,就从最大的桶开始剔除,当数量超过5%的时候,那个桶的值就是95线。然后在桶的内部采用插值方法,也可以通过桶内平均的方式来计算出一个相对精确的P95值。

此外,考虑到数据分布特点,服务耗时异常数据应该只是少数,但是异常值跨度可能很大,大部分耗时数据均靠近正常值,如果采用桶等分的形式,可能会导致大量数据堆积在一个桶内中,又如何解决这个问题?

其实可以采用非等分的跨度划分方式,例如采用指数形式划分,耗时越低的区间,跨度越小,精度约高。

image-20210129085545814

此外也可以采用美团点评的实时监控系统cat的桶跨度划分方式,代码如下:

publicstaticintcomputeDuration(intduration){if(duration<1){return1;}elseif(duration<20){returnduration;}elseif(duration<200){returnduration-duration%5;}elseif(duration<500){returnduration-duration%20;}elseif(duration<2000){returnduration-duration%50;}elseif(duration<20000){returnduration-duration%500;}elseif(duration<1000000){returnduration-duration%10000;}else{intdk=524288;if(duration>3600*1000){dk=3600*1000;}else{while(dk

即:小于20ms的时候1ms一个桶,大于20ms小于200ms的时候5ms一个桶,大于200ms小于500ms的时候20ms一个桶,以此类推!而桶的值也可以作为百分位数的近似值,而无需进行排序计算,这个时候约耗时越小的时候,精度越准确!小结

百分位数值在互联网系统中有很大的意义。通过对百分位数值的监控与优化,我们可以将更多的用户纳入我们的监控体系中,让我们的服务能够对绝对大多数的用户提供更好的体验!在一些错误率、异常率上面我们也可以使用百分位数来进行系统可用性是否达到要求,甚至在一些新的产品特性或者AB测试上也可以用来统计分析用户对其的反响,以此来衡量该特性是否真正对用户有帮助.

THE END
1.你了解性能测试的这几个指标吗?压测中99.99%时间Top95(95%响应时间):95%的请求耗时都低于某个响应时间 Top99(99%响应时间):99%的请求耗时都低于某个响应时间 平均响应时间 平均响应时间=所有请求的平均耗时=ART(Average Response Time)。 并发数/虚拟用户数 即并发处理能力,压测工具中设置的并发线程/进程数量,海量用户使用系统,在系统不崩溃情况下,能够支撑多少https://blog.csdn.net/2401_86343726/article/details/141026305
2.我们常说的TP50,TP90,TP95,TP99是什么意思呢?我们常说的TP50,TP90,TP95,TP99是什么意思呢? 在性能监控和评估中,经常使用百分位数(Percentile)来衡量系统响应时间和延迟的表现。百分位数是一种统计学概念,用于描述数据分布中的位置。在系统性能监控中,通常使用的是特定的百分位数,如 TP50、TP90、TP99 和 TP999,来描述一定时间段内的请求响应时间分布情况。https://www.ctyun.cn/developer/article/594720609693765
3.响应时间是什么意思响应时间的意思响应时间是什么意思 响应时间的意思曾经爱过 精选回答 1、响应时间是一个计算机,显示器成像等多个领域的概念,在网络上,指从空载到负载发生一个步进值的变化时,传感器的响应时间。2、通常定义为测试量变化一个步进值后,传感器达到最终数值90%所需要的时间。网络对整体响应时间的影响是通过不同机制完成的。 3、在https://edu.iask.sina.com.cn/jy/2Ei2vJSWZK3.html
4.服务响应时间的衡量指标P90P95P99分析来自james逝水流年服务响应时间的衡量指标 P90 P95 P99 分析服务响应时间分布,如均值,中位值,P95值,P99值等计算 平均值考察服务器性能,除了QPS数据外,还要查看响应时间,如何精准的表现服务器当前之负载常用的值为:平均https://weibo.com/1621133352/NlHwiiPbs
5.服务响应时间与分布(p99指标)赶路人儿的技术博客还是采用上面那个例子,100个请求按照响应时间从小到大排列,位置为95的值,即为P95值。 我们假设该值为180ms,那这个值又表示什么意思呢? 意思是说,我们对95%的用户的响应耗时在180ms之内,只有5%的用户的响应耗时大于180ms,据此,我们掌握了更精确的服务响应耗时信息。 https://blog.51cto.com/u_5650011/5390382
6.性能测试中的P90P95和P99是什么?软件测试问答P90 主要是将所有样本响应时间从大到小进行排序,然后去除样本里10%大的响应时间,剩下90%的响应时间都会小于这个时间,依此类推 0 回复 曼倩诙谐 测试 2024-08-27 15:48:11 P90、P95 和 P99 分别表示 90%、95% 和 99% 的响应时间。这些指标可以帮助我们识别性能问题,并确定系统的性能极限。 0 回复 推荐http://quan.51testing.com/pcQuan/chat/12705?name=%E6%9B%BC%E5%80%A9%E8%AF%99%E8%B0%90
7.压力测试核心性能指标及行业标准腾讯云开发者社区除了平均响应时间,压测人员通常还会关注最小、最大、90%、95%、99%响应时间。计算方式是将所有请求的响应时间按从小到大排序,其中最小、90%、95%、99%和最大分位的数据,即上述指标的值。例如,95%响应时间,意味着整个压测过程中95%的请求的响应时间都小于该值。 https://cloud.tencent.com/developer/article/2304981
8.Citrix响应时间百分位数报告此报告显示运行期间所有用户的第 85、90 和 95 个百分位数响应时间。https://www.ibm.com/docs/zh/rpt/8.6.0?topic=reports-citrix-response-time-percentile-report
9.关于系统压测的一些理解压测环境 压测数据 压测流量 压测指标 响应时间(TP95,TP99) 在性能测试中,相比于平均响应时间,更应该关注TP95或者TP99响应时间(Top Percentilehttps://www.jianshu.com/p/a5106f09af2a