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次
也是滿足四次請求的最低耗時,也就是四次請求中,耗時最長的那個時間。
那個排序就是為了讓大家更清楚的看到結果。

 

一、解釋

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%,這樣很容易讓人混淆。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM