TP50、TP90、TP99、TP999详解

摘要:
TP90、TP99、TP999和TP50值的计算方法相同。它们代表了该方法的不同性能要求。TP50相对较低,TP90相对较高,TP99和TP999对方法性能要求较高。TP999:满足9.99%网络请求所需的最短时间。可以说,TP90意味着确保90%的请求能够得到响应的最小时间消耗。TP50、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次
也是满足四次请求的最低耗时,也就是四次请求中,耗时最长的那个时间。
那个排序就是为了让大家更清楚的看到结果。

一、解释

TP=Top Percentile,Top 百分位数。
是统计学中的一个统计值,类似中位数、四分位数等概念。
可以认为 TP90的意思是保证90%请求都能被响应的最小耗时。TP50、TP99、TP999同理。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下先看一下Google到的一段解释:
The tp90is a minimum time under which 90% of requests have been served.
tp90 =top percentile 90
Imagineyou have response times:
   10s
   1000s
   100s
   2s
CalculatingTP 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
依此,翻译过来:
TP99就是满足百分之九十九的网络请求所需要的最低耗时。
举个例子,有四次请求耗时分别为:10ms,1000ms,100ms,2ms
计算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 = 10秒,TP90 = 1000秒。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这个指标主要用于性能监控:
TP指标:指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序, 并取出结果为 : 总次数 * 指标数 = 对应TP指标的序号 , 再根据序号取出对应排序好的时间,即为TP指标。
举例:
假设上一分钟内接口被调用100次,100次的调用耗时分别为:1、2、3...99、100秒。  
我们对耗时进行从小到大排序,形成容量为100的数组A=[1s,2s,3s....99s,100s]  
TP50的计算方式:100*50%=50,所以TP50指标=A[50]=50s
TP99的计算方式:100*99%=99,所以TP99指标=A[99]=99s
TP999的计算方式:100*999%=99.9,99.9进位取整为100,所以TP999指标=A[999]=100s  
配置TP50指标=50s:配置此监控指标对应的报警阈值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警;
配置TP99指标=99s:配置此监控指标对应的报警阀值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有99%的值要小于此阈值,否则系统将会报警;
依次类推。
TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。
其实我们在实际应用过程中,首先可对系统调优、压测、调优,并根据业务、性能的要求估算出某接口的所表现出的响应速度能力。然后确定90%的调用所能接受的最高响应时间t1,99%的调用所能接受的最高响应时间t2。 t2必然大于t1。 最后将确定好的指标作为阈值配置到监控系统。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、实际应用

TP50为例,TP90TP99TP9999….等依此类推,对于我们工作中的应用有两种:
1.   计算TP50所需要的最短交付时间,所需要的序号设置X,X=单位时间内总次数*TP指标标号,将交付时间升序排列,从而得出TP50为序列第X位的交付时间。
例:2021年1月发生了100次维修,交付时间(天)从小到大排序分别为下表:
  
序号
  
1
2
3
4
50
90
99
100
  
用时
  
2
2
2
3
3
3
4
5
TP50=3天
TP90=3天
TP99=4天
2.   计算达标率,即设置了TP指标后,通过在一段时间内计算得出交付时间阈值,我们可以计为T作为达标标准,从而计算出达到阈值的比例。
例:2020年12月共计发生100次维修,交付时间(天)由小到大排序为下表:
  
序号
  
1
2
3
4
50
90
99
100
  
用时
  
2
2
2
3
3
3
4
5
TP50=3天,此时间值为T,即达标的时间标准。
再计算达标率<=3天的维修次数,可以看到90%的工单达标,所以达标率为90%,但不能说直接说TP50=90%,这样很容易让人混淆。

免责声明:文章转载自《TP50、TP90、TP99、TP999详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swing菜单与工具栏(三)(转) 淘淘商城系列——Redis五种数据类型介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何利用MATLAB并行计算缩短程序运行时间

本来CPU就是双核,不过以前一直注重算法,没注意并行计算的问题。今天为了在8核的dell服务器上跑程序才专门看了一下。本身写的程序就很容易实现并行化,因为beamline之间并没有考虑相互作用。等于可以拆成n个线程并行,要是有550核的话,估计1ms就算完了。。。 先转下网上找到的资料。 一、Matlab并行计算原理梗概Matlab的并行计算实质还是主从...

D3、EChart、HighChart绘图demol

1.echarts:   <!DOCTYPE html>   <html>   <head>   <meta charset="utf-8">   <title>ECharts</title>   <!-- 引入 echarts.js -->...

转摘cognos学习笔记

  第一部分 准备知识  概述 (p1)    业务智能(Business Intelligence) 近年来业务智能的话题开始在国内热起来。 业务智能是在计算机应用水平达到一定程度、数据积累到一定量之后提上议事日程的一个应用领域。 业务智能是为更好的决策而对数据进行收集、转换、分析和分发的过程。 业务智能是把数据转化成知识的过程。包括信息的获取、分析和...

QQ等级计算方法及图标

在线时长从去年下半年开始统计,使用腾讯QQ(包括在线,隐身,离开状态),使用腾讯TM,或是在Wince平台下用手机登录腾讯QQ,均计入在线时长。在线状态下不即时更新在线时长,每次下线后,更新本次的在线时长和等级。在线时长等级由太阳,月亮,星星三个图标标识。 在线时长积满20小时,即可获得一颗星星,获得第二颗星星需要再累积30小时,获得第三颗星星需要再累积4...

超详细介绍 图像处理(卷积)(转)

图像处理(卷积)作者太棒了    原文   http://blog.sina.com.cn/s/blog_4bdb170b01019atv.html 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应) 这里讨论利用输入图像中像素的小邻域来产生输出图像的方法,在信号处理中这种方法称为滤波(filtering)。其中,最常用的是线性滤波:输出...

不升级Element-UI 版本为时间选择器增加标记功能

Element-UI里的date-picker是个优秀的时间选择器,支持的选项很多,定制型很强。不过date-picker在2.12版本之前并不支持自定义单元格样式,也就是2.12的cellClassName功能。所以如果使用了2.12之前的版本,那么你就无法直接去更改单元格的样式了,因此在日历上就无法标记出重要日期(比如放假安排)。 公司项目里用的Ele...