为什么性能监控指标用TP50/90/99等百分位数而非平均数

缘由:

之前做的一个项目上线有一段时间了,但一直也没有来得及做统计分析(峰值、平均QPS、……)。最近刚好又被问到了这个事情,所以抽空学习了解一下部分监控指标的概念和含义,方便后续自己做统计分析。

正文:

参考解答:

概念:

TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。

应用:

TP50、TP90和TP99等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况。

计算/统计方法:

TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。

TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。

举例:假设现在有4次请求耗时分别为:
10s
1000s
100s
2s

计算TP百分线的方法就是:

1、先按升序排列 [2s, 10s, 100s, 1000s];

2、找到你需要用做统计的最后一个条目(向高取整)对应的数值,比如:TP50就是第 ceil(4*0.5)=2 个,即 10s ;TP90就是第 ceil(4*0.9)=4 个,即 1000s 。


为什么用百分位数而不是平均数?

待添加

参考链接:

=END=

猜你喜欢

转载自blog.csdn.net/varyall/article/details/86498407
今日推荐