吞吐量(Throughput)和延遲(Latency)
阿新 • • 發佈:2018-11-19
簡介
- Latency,中文譯作延遲。Throughput,中文譯作吞吐量。它們是衡量軟體系統的最常見的兩個指標。
- 延遲一般包括單向延遲(One-way Latency)和往返延遲(Round Trip Latency),實際測量時一般取往返延遲。它的單位一般是ms、s、min、h等。
- 吞吐量一般指相當一段時間內測量出來的系統單位時間處理的任務數或事務數(TPS)。注意“相當一段時間”,不是幾秒,而可能是十幾分鍾、半個小時、一天、幾周甚至幾月。它的單位一般是TPS、每單位時間寫入磁碟的位元組數等。
併發
-
比如Apache和Nginx。在併發請求數不高時,比如10000(我假設的)以下時,也許Apache的吞吐量可能優於Nginx,但在大於10000時Apache的吞吐量就開始急劇下降,而Nginx的吞吐量相對之前比較穩定。所以比較Web伺服器的吞吐量時,必須觀察在併發請求數逐漸遞增情況下它們各自的表現。
-
根據延遲和吞吐量我們還可以計算併發度(Concurrency),公式如下:
舉例:
-
一個任務的處理花費1ms,吞吐量為1000tps,那麼併發度就等於1/1000*1000=1,可以得出任務處理執行緒模型是單執行緒模型。
-
一個HDD磁碟的延遲為8ms,但吞吐量可以達到每秒鐘寫40MB,那麼每次磁碟尋道可以寫入的資料量為(4010^6) * (810^-3)B = 320,000B = 320KB。
關於延遲跟吞吐量的比喻
In short, the throughput is a function of how many stages are in parallel while latency is a function of how many are in series when there are multiple stages in the processing. The stage with the lowest throughput determines the overall throughput.
結束
- 作業系統不光要儘量讓網路吞吐量大,而且還要讓每個應用程式傳送資料的延遲儘量小。這是兩個不同的目標。