Latency、Bandwidth、Throughput、Response Time概念的區別
經常,一些性能測試人員對延時(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)受連接類型、距離和網路擁塞的影響
※MyBatis源碼解讀之延遲載入 頂
※使用PHP簡單操作Memcached
TAG:程序員小新人學習 |