1. 程式人生 > >也談程式效能測試

也談程式效能測試

一般對於我們的網路程式,常用的模式是收包,處理(可能包括磁碟IO,網路IO,資料庫IO),返回。對於這種程式,衡量效能的標準經常用吞吐量(throughput)和時延(latency)。吞吐量反映的是程式每秒能接受多少個請求,也就是併發量,而時延反映的是每個請求處理需要多長時間。這兩個指標要結合起來才能反映系統的狀態。比如說某系統的吞吐量為100W,就是說1s內系統能接受100W個請求,也許是建立了100W個TCP連線,但是系統時延是10s,就是說從請求進到系統,到處理完畢花費了10s,這樣的情況下系統也是不怎麼樣的。單純吞吐量做大很容易,只要記憶體夠大,能接受更多的請求,開多個程序大量的請求排隊就可以了。問題是在大吞吐量下還要求低時延,這個就有挑戰性了。因為你請求多了,排隊多了,程序多了導致程序排程也慢了,排隊的時間就更長了,所以時延就自然下降了,記住時延是從請求進入到系統算起的,包括了在TCP系統快取裡的等待時間,在應用佇列裡的等待時間。 所以我們做系統往往是追求吞吐量和時延之間的平衡。