[转帖]TP50、TP90、TP99、TP999详解

tp50,tp90,tp99,tp999,详解 · 浏览次数 : 0

小编点评

**TP50** 指的是,在一段时间的范围内,该方法所有请求的平均响应时间不超过 50 分钟的百分比值。 **TP90** 指的是,在一段时间的范围内,该方法所有请求的平均响应时间不超过 90 分钟的百分比值。 **TP99** 指的是,在一段时间的范围内,该方法所有请求的平均响应时间不超过 99 分钟的百分比值。 **TP999** 指的是,在一段时间的范围内,该方法所有请求的平均响应时间不超过 99.9 分钟的百分比值。

正文

https://www.cnblogs.com/zhangxinglong/p/14324858.html

 

概念: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为例,TP90、TP99、TP9999….等依此类推,对于我们工作中的应用有两种:
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详解相似的内容:

[转帖]TP50、TP90、TP99、TP999详解

https://www.cnblogs.com/zhangxinglong/p/14324858.html 概念:TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,并取出结果为:总次数 * 指标数 = 对应TP指标的值, 在取出排序好的时间。 TP5

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /

[转帖]Windows Server 2022 简体中文版、英文版下载 (updated Oct 2022)

https://sysin.org/blog/windows-server-2022/ Windows Server 2022 正式版,2022 年 10 月更新,VLSC Posted by sysin on 2022-10-27 Estimated Reading Time 8 Minutes