操作系统采用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拥塞算法退避,进程上下文切换的开销等。