其他分享
首页 > 其他分享> > (翻译)性能监控之百分位数监控

(翻译)性能监控之百分位数监控

作者:互联网

文章目录

原文链接:https://www.adfpm.com/adf-performance-monitor-monitoring-with-percentiles/

一、前言

在性能监控中什么是最好的度量—平均数还是百分位数?从统计学上讲,有很多方法可以确定应用程序提供的整体体验有多好。平均值被广泛使用。它们很容易理解和计算——但它们可能会产生误导。
这篇文章是关于百分位数的。我将解释什么是百分位数,以及如何使用它们更好地理解应用程序性能。与平均值相比,百分位数告诉我们应用程序响应时间有多一致。百分位数可以做出很好的近似,可用于趋势分析,SLA 协议监视以及每天评估/对性能进行故障排除。

服务级别协议(英语:service-level agreement,缩写 SLA)也称服务等级协议、服务水平协议,是服务提供商与客户之间定义的正式承诺。SLA的概念,对互联网公司来说就是网站服务可用性的一个保证。

二、平均值如何造成误导

在这里插入图片描述
我们可以从平均数得出错误的结论。例如:让我们假设一个国家的工人的平均月薪在 2000 美元左右(这似乎不算太坏)。然而,仔细观察我们就会发现,这个国家的大多数人都是外来务工人员,也就是 10 个人中有 9 个人是外来务工人员。他们只赚 1000 美元左右。每 10 个(当地居民)中就有 1 个月能挣11000美元左右(这太简单了,但你懂的)。如果你计算一下,你会发现这个数字的平均值确实在 2000 年左右,但我们都能理解,这并不代表一个现实的“平均”工资。这也适用于统计监控应用程序性能和监控 SLA 协议。非常高的值对平均值的影响非常大。在现实中,大多数应用程序都有一些非常重要的异常值,这些异常值对平均值的影响很大。

三、百分位数说明

当您想从高级角度了解应用程序的执行情况时,理解百分位数的概念是很有用的。百分位是统计中使用的一种度量,表示一组观察中某一特定百分比的观察值低于该值。例如,低于 90 %响应时间值的 HTTP 请求的响应时间称为 9 0百分位响应时间。下面的截图是 3.0 秒(所以 90 %的请求都是在 3.0 秒或更短的时间内处理的:
在这里插入图片描述
要获得某个单击操作的 90 %响应时间值,请按递增顺序对该单击操作发起的请求的所有响应时间值进行排序。把这一组的前 90 %拿出来。该集合中具有最大值的响应时间是单击操作请求的 90 %。

假设对于一个单击操作,有 10 个HTTP响应时间值可用:1、2、3、4、5、6、7、8、9和 10 秒。排序之后,如果我把 90 %的响应时间值作为一个单独的集合取出来,我将得到:1、2、3、4、5、6、7、8和 9。这里的 9 是最大值,因此是该点击操作的 90 %值。

当然,我们希望尽可能多的 HTTP 请求都有非常快的响应时间;所以,在一个理想的世界里,第 50、95、99 甚至是第 100 百分位的人会尽可能快。

四、百分比在性能监控

请看 2018 年 6月月度概述的百分位数图表(右下角):
在这里插入图片描述图中用蓝色表示平均响应时间,用黑色、灰色和浅灰色绘制第 50、90 和 95 百分位数:
在这里插入图片描述
x 轴为 2018 年 6 月的天数,y 轴为 HTTP 响应时间(以秒为单位)。

我们可以看到以下模式:

这告诉我们什么?

五、月概述-活跃用户和会话

一个关于活动终端用户和 HTTP 会话的图表——这对于评估一个托管服务器上活动的终端用户和会话数量或所有托管服务器上活动的终端用户和会话数量非常有用。稍后,我们可以将这些值性能监控图中的所有其他指标进行比较,如 JVM、SLA 协议指标、在层中花费的时间等,但现在还可以将其与百分比进行比较:
在这里插入图片描述
x 轴为 2018 年 6 月的天数,y 轴为活动会话数和最终用户数:
在这里插入图片描述
我们可以看到以下模式:

六、趋势分析

我们可以在各种绩效评估中使用百分位数。特别是对于新版本发布后的回归和趋势分析。我们真的提高了性能吗?有时在新版本发布后性能会上升或下降——如果我们能够看到并认识到这一点将会很有用。如果是的话,第 50、90 和 95 百分位线应该在您提高生产性能后减少——这意味着更快的响应时间:
在这里插入图片描述
如图所示。6月17日发布了一个新的版本,据说性能有所改善。在那之后,在6月剩下的几天里,我们看到平均响应时间,第 50、90 和 95 百分位数下降了——这表明新版本确实提高了性能。

七、周、日、小时概述

与每月的方式相同,周、日和小时的终端用户/会话和百分比概述。以下是一个关于 Day 概述的例子:
在这里插入图片描述

八、结论

与平均值相比,百分位数告诉我们应用程序响应时间有多一致。
当平均响应时间看起来非常高,单个数据集看起来很正常时,这对于在不受异常缓慢请求影响的情况下分析性能非常有用。
百分位数非常适合用于趋势分析、SLA 协议监控和日常性能评估。

标签:翻译,HTTP,响应,时间,监控,90,百分位,SLA
来源: https://blog.csdn.net/zuozewei/article/details/116351205