我有两台Linux机器,每台配备一个Solarflare SFN5122F 10GbE NIC。 两个NIC使用SFP +直连电缆连接在一起。
我使用netperf来衡量两台机器之间的TCP吞吐量。 在一个盒子里,我运行:
netserver
另一方面:
netperf -t TCP_STREAM -H 192.168.xx -- -m 32768
我得到:
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xx (192.168.xx) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 32768 10.02 1321.34
测得的吞吐量是1.3Gb / s。 这是理论最大值的7.5倍,只比1GbE快30%。
我可以采取哪些措施来解决这个问题?
一些事情:
你很可能在单个TCP会话上达不到完整的10Gbit,但你可以通过调整tcp处理和与网卡本身的通信来进行一些额外的调整,以更接近它 – 看看这里或这里 。