TP50、TP90、TP99、TP999详解
概念:TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,并取出结果为:总次数 * 指标数 = 对应TP指标的值, 在取出排序好的时间。
TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。
TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。
举个例子:有四次请求耗时分别为:
10ms,1000ms,100ms,2ms
那么我们可以这样计算TP99:4次请求中,99%的请求数为4*0.99,进位取整也就是4次,满足这全部4次请求的的最低耗时为1000ms,也就是TP99的答案是1000ms。
一、 TP50、TP90、TP99、TP999
TP(Top Percentile)Top百分数,是一个统计学的术语,与平均数、中位数一样。是不是看着这句话很眼熟?对,没错,是我抄过来的。请脑补一个大笑的表情,以达到我这句话的效果,谢谢
在网上看了很多帖子,是这样解释这些指标的:
TP50:满足百分之五十的网络请求所需的最低耗时。
TP90:满足百分之九十的网络请求所需的最低耗时。
TP99:满足百分之九十九的网络请求所需的最低耗时。
TP999:满足千分之九百九十九的网络请求所需的最低耗时。
public static final int TOTAL_RUNS = 1000000;
public static final int TP50 = (int)(TOTAL_RUNS * 0.50);
public static final int TP90 = (int)(TOTAL_RUNS * 0.90);
public static final int TP99 = (int)(TOTAL_RUNS * 0.99);
public static final int TP99_9 = (int)(TOTAL_RUNS * 0.999);
public static final int TP100 = (int)(TOTAL_RUNS * 1);
看完这些解释,我只想说一句。。。。
我看不懂!!!能不能举栗说明一下子!!!
当然,热心的网友朋友们,当然会满足你的要求。
例子大概是这样写的:
有四次请求耗时分别为:
10ms,1000ms,100ms,2ms
那么我们可以这样计算TP99:4次请求中,99%的请求数为4*0.99,进位取整也就是4次,满足这全部4次请求的的最低耗时为1000ms,也就是TP99的答案是1000ms。
你没有猜错,这个栗子也是我偷过来的。
网友们给出的栗子,也是Google到别人的解释。
不知道为什么,刚看这个,看了好多次都没看懂到底是为什么,当然不排除是我笨的原因。
直到,我看到了这个栗子的原版。
**tp90 is a minimum time under which 90% of requests have been served. Imagine you have times:
10s
1000s
100s
2s
Calculating TP is very simple:
sort all times in ascending order: [2s, 10s, 100s, 1000s]
find latest item in portion you need to calculate. For TP50 it will ceil(4.5)=2 requests. You need 2nd request. For TP90 it will be ceil(4.9)=4. You need 4th request.
get time for the item found above. TP50=10s. TP90=1000s**
仔细看上边的解释
TP90:先算出90%的请求是多少,4*0.9进位取整也就是4次
也是满足四次请求的最低耗时,也就是四次请求中,耗时最长的那个时间。
那个排序就是为了让大家更清楚的看到结果。
一、解释
1000s
100s
2s
2.1 For TP50 it will be ceil(4*0.5) = 2 requests. You need 2nd request.
2.2 For TP90 it will be ceil(4*0.9) = 4. You need 4th request.
依次类推。
二、实际应用
序号
|
1
|
2
|
3
|
4
|
…
|
50
|
…
|
90
|
…
|
99
|
100
|
用时
|
2
|
2
|
2
|
3
|
…
|
3
|
…
|
3
|
…
|
4
|
5
|
序号
|
1
|
2
|
3
|
4
|
…
|
50
|
…
|
90
|
…
|
99
|
100
|
用时
|
2
|
2
|
2
|
3
|
…
|
3
|
…
|
3
|
…
|
4
|
5
|