抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > 【性能测试】压力测试指标全解之TP指标(50/90/99/999)

【性能测试】压力测试指标全解之TP指标(50/90/99/999)

时间:2022-04-15 12:39:46

相关推荐

hello,大家好!我是磨磨唧唧小蘑菇~

大促压测参与了好几次,每次监控压测指标的时候,都处于一知半解的状态,碰上有人问我啥意思只能尴尬的老脸一红,都不好意思承认自己是大厂软件测试。最近,经过一番恶补和查阅相关资料,现在就陆陆续续落地沉淀一下吧,本期就围绕“TP指标”为核心点展开阐述~

目录

一、TP指标的解释

二、TP指标的应用

一、TP指标的解释

咱先上个Google解释:

The tp90 is a minimum time under which 90% ofrequestshave been served.

tp90 = top percentile 90

Imagine you have response times:

10s

1000s

100s

2s

Calculating TP is very simple:

1. Sort all times in ascending order: [2s, 10s, 100s, 1000s]

2. find latest item in portion you need to calculate.

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.

3. We get time for the item found above. TP50=10s. TP90=1000s

以上,翻译过来的意思就是:

TP90是指满足百分之九十的网络请求所需要的最低耗时

举个例子,有四次请求耗时分别为:10s,1000s,100s,2s

计算TP非常简单:

1.将所有时间按升序排序:[2s,10s,100s,1000s]

2.在需要计算的部分中找到需要的项

2.1 对于TP50,即ceil(4 * 0.5)= 2,您需要第二个请求

2.2 对于TP90,即ceil(4 * 0.9)= 4,您需要第四个请求

3.我们在上面找到对应的时间,TP50 = 10s,TP90 = 1000s

TP = Top Percentile,Top百分位数,是一个统计学里的术语,类似中位数的概念。

看了Google解释,是不是还是一知半解,好,以下是正儿八经的解释:

TP指标:指单位时间内(5分钟/10分钟都可),统计该方法每次调用所消耗的时间,并将这些时间按照从小到大的顺序进行排序,再根据【总次数 * 指标数 = 对应指标的TP序号】,再根据TP序号取出排序后的对应位置的时间,即为TP指标。

还是不太好理解是不是?举个例子就明白了,eg:

假设一个查询接口在一秒钟内被调用8次,该方法每次调用所消耗的时间分别是:

10ms、40ms、30ms、109ms、76ms、34ms、80ms、110ms

将这些时间按照从小到大的顺序进行排序,排序后的结果是:

10ms、30ms、34ms、40ms、76ms、80ms、109ms、110ms

TP50的计算方式为:

8次 * 50% = 4(TP序号),则TP50 = 排序后的第4位的时间 = 40ms

TP90的计算方式为:

8次 * 90% = 7.2,向上取整为8(TP序号),则TP90 = 排序后的第8位的时间 = 110ms

TP99的计算方式为:

8次 * 99% = 7.92,向上取整为8(TP序号),则TP99 = 排序后的第8位的时间 = 110ms

TP999的计算方式为:

8次 * 999‰= 7.992,向上取整为8(TP序号),则TP999 = 排序后的第8位的时间 = 110ms

Attention:TP 指标计算中,如果计算出来的序号不是整数,一般向上取整。​​​​​​​

综合以上可以看出:

TP50、TP90、TP99、TP999的计算方式其实都是一样的,只是分别代表着对方法的不同性能要求。

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);

二、TP指标的应用

我们都知道:一次请求从前端到后端的请求时间,这个接口的总时间 = 服务请求的时间(网络传输时间)+ 服务处理的时间(服务接口逻辑处理时间)+ 响应返回时间(网络传输时间)

而接口TP99耗时,就是衡量接口性能的指标,TP99越低,接口性能越好。根据对一个接口反复测试耗时时间,接口的平均耗时其实就约等于TP99耗时,拿这个值就可以去监控上配置。当接口的TP99耗时超过这个值,就会触发报警,因为我们认为接口超过TP99耗时是不合理的,可以配置此项报警监控。

所以,接口TP99耗时,就是帮助我们监控接口的一个指标,一旦超出了这个指标,我们就可以认为该接口是存在问题的,此时需要对接口的内部逻辑进行梳理,看看到底哪块耗时,是否可以进行优化。

总结下来:TP指标的应用在于,将确定好的指标作为阈值配置到监控系统,用于系统报警。

还是以上述“查询接口”为例:

TP50 = 40ms,配置此监控指标对应的报警阈值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有50%的值要小于此阈值,否则系统将会报警TP90 = 109ms,配置此监控指标对应的报警阈值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有90%的值要小于此阈值,否则系统将会报警TP99 = 110ms,配置此监控指标对应的报警阈值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有99%的值要小于此阈值,否则系统将会报警

因TP50、TP90、TP99、TP999的计算方式是一样的,只是分别代表着对方法的不同性能要求,由此可以看出:TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。

实际应用:首先可对系统调优、压测,并根据业务、性能的要求估算出某接口的所表现出的响应速度能力。然后确定90%的调用所能接受的最高响应时间t1,99%的调用所能接受的最高响应时间t2。t2必然大于t1。 最后将确定好的指标作为阈值配置到监控系统用于监控报警。

文中所有观点只代表个人,有不足之处,欢迎指正,不胜感激!!!

如果觉得《【性能测试】压力测试指标全解之TP指标(50/90/99/999)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。