鵝再來貼個R牌8169好了,client是Celeron 2.4D+512MB DDR400(不過限於CPU實際上是跑DDR266),server一樣是AM2的Sempron3000+2GB DDRII667+MCP51內建的GbE(PHY也是Marvell的),不過這次server是跑XP(為了開Jumbo Frame/off loading等功能

)....
default只開rx off loading,沒開Jumbo Frame....
root@lab01:~# ethtool -k eth1
Offload parameters for eth1:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: off
root@lab01:~# time iperf -c 192.168.10.115
------------------------------------------------------------
Client connecting to 192.168.10.115, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.10.110 port 36782 connected with 192.168.10.115 port 5001
[ 5] 0.0-10.0 sec 723 MBytes 607 Mbits/sec
real 0m10.034s
user 0m0.112s
sys 0m4.068s
throughput約607Mbps,CPU loading約40%....
同上,開10個connection
root@lab01:~# time iperf -c 192.168.10.115 -P10
connect failed: Connection refused
write1 failed: Broken pipe
connect failed: Connection refused
write1 failed: Broken pipe
connect failed: Connection refused
write1 failed: Broken pipe
connect failed: Connection refused
write1 failed: Broken pipe
------------------------------------------------------------
Client connecting to 192.168.10.115, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
write2 failed: Broken pipe
write2 failed: Broken pipe
write2 failed: Broken pipe
write2 failed: Broken pipe
[ 9] local 192.168.10.110 port 45776 connected with 192.168.10.115 port 5001
[ 5] local 192.168.10.110 port 45772 connected with 192.168.10.115 port 5001
[ 6] local 192.168.10.110 port 45773 connected with 192.168.10.115 port 5001
[ 7] local 192.168.10.110 port 45774 connected with 192.168.10.115 port 5001
[ 8] local 192.168.10.110 port 45775 connected with 192.168.10.115 port 5001
[ 10] local 192.168.10.110 port 45777 connected with 192.168.10.115 port 5001
[ 11] local 0.0.0.0 port 45778 connected with 192.168.10.115 port 5001
[ 11] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 12] local 0.0.0.0 port 45779 connected with 192.168.10.115 port 5001
[ 12] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 13] local 0.0.0.0 port 45780 connected with 192.168.10.115 port 5001
[ 13] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 14] local 0.0.0.0 port 45781 connected with 192.168.10.115 port 5001
[ 14] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 5] 0.0-10.0 sec 123 MBytes 103 Mbits/sec
[ 6] 0.0-10.0 sec 123 MBytes 103 Mbits/sec
[ 7] 0.0-10.0 sec 123 MBytes 103 Mbits/sec
[ 8] 0.0-10.0 sec 123 MBytes 104 Mbits/sec
[ 10] 0.0-10.0 sec 123 MBytes 103 Mbits/sec
[ 9] 0.0-10.0 sec 124 MBytes 104 Mbits/sec
[SUM] 0.0-10.0 sec 740 MBytes 621 Mbits/sec
real 0m10.023s
user 0m0.196s
sys 0m5.932s
throughput沒太大變動,但CPU load由40%上升到60%(約50%

)....BTW,出現write2 failed不知是鵝的XP沒hack過(10個connection的限制)亦或是真跑不動了

....
開一個connection,off loading全開,MTU設成7200(linux kernel driver中R牌support的最大值)....
root@lab01:~# ethtool -k eth1
Offload parameters for eth1:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: on
root@lab01:~# time iperf -c 192.168.10.115
------------------------------------------------------------
Client connecting to 192.168.10.115, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.10.110 port 46567 connected with 192.168.10.115 port 5001
[ 5] 0.0-10.0 sec 790 MBytes 663 Mbits/sec
real 0m10.019s
user 0m0.084s
sys 0m2.696s
throughput由607Mbps上升到663Mbps(約10%),CPU loading由40%下降至27%(約33%)....
同上,開10個connection....
root@lab01:~# time iperf -c 192.168.10.115 -P10
connect failed: Connection refused
write1 failed: Broken pipe
connect failed: Connection refused
write1 failed: Broken pipe
------------------------------------------------------------
Client connecting to 192.168.10.115, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
write2 failed: Broken pipe
write2 failed: Broken pipe
[ 6] local 192.168.10.110 port 46193 connected with 192.168.10.115 port 5001
[ 7] local 192.168.10.110 port 46194 connected with 192.168.10.115 port 5001
[ 8] local 192.168.10.110 port 46195 connected with 192.168.10.115 port 5001
[ 9] local 192.168.10.110 port 46196 connected with 192.168.10.115 port 5001
[ 11] local 192.168.10.110 port 46198 connected with 192.168.10.115 port 5001
[ 12] local 192.168.10.110 port 46199 connected with 192.168.10.115 port 5001
[ 13] local 0.0.0.0 port 46200 connected with 192.168.10.115 port 5001
[ 13] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 14] local 0.0.0.0 port 46201 connected with 192.168.10.115 port 5001
[ 14] 0.0- 0.0 sec 0.00 Bytes 0.00 bits/sec
[ 10] local 192.168.10.110 port 46197 connected with 192.168.10.115 port 5001
[ 5] local 192.168.10.110 port 46192 connected with 192.168.10.115 port 5001
[ 7] 0.0- 7.0 sec 70.4 MBytes 84.3 Mbits/sec
[ 8] 0.0- 7.0 sec 70.1 MBytes 83.9 Mbits/sec
[ 11] 0.0- 7.0 sec 70.4 MBytes 84.2 Mbits/sec
[ 9] 0.0- 7.0 sec 70.4 MBytes 84.2 Mbits/sec
[ 12] 0.0- 7.0 sec 70.4 MBytes 84.1 Mbits/sec
[ 10] 0.0- 7.0 sec 70.3 MBytes 84.0 Mbits/sec
[ 6] 0.0-10.0 sec 189 MBytes 159 Mbits/sec
[ 5] 0.0-10.0 sec 189 MBytes 158 Mbits/sec
[SUM] 0.0-10.0 sec 800 MBytes 671 Mbits/sec
real 0m13.015s
user 0m0.144s
sys 0m2.896s
throughput與CPU loading都與off loading全開,MTU設成7200時約略相當....
由以上不太精確的測試,大致上可以得出Jumbo Frame/off loading不論對throughput或CPU loading而言的確有些助益的結果吧


....