經常,一些性能測試人員對延時(Latency)、吞吐(Throughput)、帶寬(Bandwidth)和響應時間(Response Time)感到迷惑,今天,就用一些簡單的例子來說明它們之間的區別。
從上圖(水管示意圖),基本可以看出三個重要組件:延時(Latency)、吞吐(Throughput)、帶寬(Bandwidth)之間的關系,如果還不清楚,那么可以看下面的解釋:
延時(Latency):水從一端傳播到另一端所花費的時間稱為Latency。它是以毫秒、秒、分鍾或小時等時間單位來衡量的。在性能測試中,請求的延時是客戶端到服務端以及服務端到客戶端的傳輸時間。一些測試人員稱之為“延遲(Delay)”。比如說:
- 一個請求從t=0時刻開始
- 花了1秒時間到達服務端(t=1)
- 服務端花了2秒時間進行處理(t=3)
- 最后花了1秒時間到達客戶端(t=4)
所以,我們這里所說的延時(Latency)就是2秒。
帶寬(Bandwidth):它顯示了管道(通信通道)的容量。帶寬表示通過管道的水的最大值。在性能測試術語中,通過通信信道傳輸的最大數據量稱為信道帶寬。假設ISDN的帶寬是64K,則我們可以增加一個64K的通道,所以總帶寬是128K。
吞吐(Throughput):從管道中實際流出的水可以表示為吞吐量。在性能測試術語中,“在給定的時間段內從一個位置成功移動到另一個位置的數據量,通常以每秒比特數(bps)來度量,或每秒兆比特數(Mbps)、每秒千比特數(Gbps)”。例如:在第4秒傳輸了20 bit數據,因此在t=4時的吞吐量為20bps。
響應時間(Response Time):響應時間是指從用戶發送請求到應用程序加上請求已經完成並返回給用戶的時間。在上面的延時示例中,響應時間為4秒。
另外,還有一些重要的點需要提一下:
- 解決帶寬(Bandwidth)比解決延時(Latency)更容易
- 如果吞吐量(Throughput)幾乎等於帶寬(Bandwidth),這意味着網絡使用率很高
- 通過在平坦吞吐量圖中增加響應時間(Response Time)可顯示網絡帶寬(Bandwidth)問題。 可以通過添加額外信道(即通過增加網絡帶寬)來解決該瓶頸
- 理想情況下,吞吐量(Throughput)和網絡帶寬(Bandwidth)的預期容量是一致的
- 有些工具不以單位時間表示吞吐量(Throughput),而是以時鍾周期表示。這是不正確的,但通常使用更方便
- 響應時間(Response Time)與吞吐量(Throughput)成正比。如果吞吐量(Throughput)隨響應時間(Response Time)的增加而減少,則表示應用程序/系統不穩定
- 線程的數量與吞吐(Throughput)量成正比
- 如果延時(Latency)較低,但是帶寬(Bandwidth)較小,那么從A點到B點的數據傳輸時間要比延時(Latency)低且帶寬(Bandwidth)高的時間長
- 延時(Latency)受連接類型、距離和網絡擁塞的影響
https://my.oschina.net/fileoptions/blog/2254644
性能指標TP99
首先給出Google到的答案:
The tp90 is a minimum time under which 90% of requests have 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
依此,翻譯過來,TP99就是滿足百分之九十九的網絡請求所需要的最低耗時。同理TP999就是滿足千分之九百九十九的網絡請求所需要的最低耗時。
舉個例子:有四次請求耗時分別為:
10ms,1000ms,100ms,2ms
那么我們可以這樣計算TP99:4次請求中,99%的請求數為4*0.99,進位取整也就是4次,滿足這全部4次請求的的最低耗時為1000ms,也就是TP99的答案是1000ms。