操作系統採用Ubuntu 14.04,CPU有4物理核8邏輯核。10G網卡爲Intel X520。
關掉主機網卡的TSO、GSO功能。
sudo ethtool –K p1p1 tso off
sudo ethtool –K p1p1 gso off
iperf服務器端使用10G網卡,執行
iperf -s -p 12003 -i1
客戶端多次執行如下命令,但每次啓動的進程數會變化:
iperf -c 192.168.9.4 -p 12003 -i1 -t 15 -P 1
注意到本次開啓了1個進程,服務器端顯示結果如下:
CPU由於負載接近100%,僅能達到2.87G帶寬。
客戶端開啓2個進程,
iperf -c 192.168.9.4 -p 12003 -i1 -t 15 -P 2
服務器端顯示結果如下:
如此類推,當客戶端開啓5個進程時,可以達到最高總帶寬。
iperf -c 192.168.9.4 -p 12003 -i1 -t 15 -P 5
服務器端顯示結果如下:
此後再增加進程數,總帶寬逐漸減小,例如
iperf -c 192.168.9.4 -p 12003 -i1 -t 15 –P 8
關於多進程帶寬反而小幅下降,這是一個有意思的現象。可以想到一些理由:競爭帶寬導致的鏈路擁塞、TCP擁塞算法退避,進程上下文切換的開銷等。