Networking 10G链路的netcat和iperf结果存在巨大差异
看到netcat和iperf结果之间的巨大差异,我感到困惑。我有10克链接连接我的服务器和客户端。iperf的速度约为10Gb/s,但netcat的速度仅为280Mb/s。可能是什么错误 对于Iperf 服务器Networking 10G链路的netcat和iperf结果存在巨大差异,networking,tcp,client-server,netcat,iperf,Networking,Tcp,Client Server,Netcat,Iperf,看到netcat和iperf结果之间的巨大差异,我感到困惑。我有10克链接连接我的服务器和客户端。iperf的速度约为10Gb/s,但netcat的速度仅为280Mb/s。可能是什么错误 对于Iperf 服务器 iperf -s nc -v -v -l -n 2222 >/dev/null 客户 iperf -c 172.79.56.27 -i1 -t 10 time dd if=/dev/zero | nc -v -v -n 172.79.56.27 2222 Connecti
iperf -s
nc -v -v -l -n 2222 >/dev/null
客户
iperf -c 172.79.56.27 -i1 -t 10
time dd if=/dev/zero | nc -v -v -n 172.79.56.27 2222
Connection to 172.79.56.27 2222 port [tcp/*] succeeded!
^C6454690+0 records in
6454690+0 records out
3304801280 bytes (3.3 GB) copied, 11.4463 s, 289 MB/s
real 0m11.449s
user 0m6.868s
sys 0m15.372s
结果:
Client connecting to 172.79.56.27, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 172.79.56.28 port 46058 connected with 172.79.56.27 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.07 GBytes 9.23 Gbits/sec
[ 3] 1.0- 2.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 2.0- 3.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 3.0- 4.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 4.0- 5.0 sec 1.09 GBytes 9.36 Gbits/sec
[ 3] 5.0- 6.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 6.0- 7.0 sec 1.09 GBytes 9.36 Gbits/sec
[ 3] 7.0- 8.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 8.0- 9.0 sec 1.09 GBytes 9.36 Gbits/sec
[ 3] 9.0-10.0 sec 1.09 GBytes 9.35 Gbits/sec
[ 3] 0.0-10.0 sec 10.9 GBytes 9.34 Gbits/sec
对于netcat
服务器
iperf -s
nc -v -v -l -n 2222 >/dev/null
客户
iperf -c 172.79.56.27 -i1 -t 10
time dd if=/dev/zero | nc -v -v -n 172.79.56.27 2222
Connection to 172.79.56.27 2222 port [tcp/*] succeeded!
^C6454690+0 records in
6454690+0 records out
3304801280 bytes (3.3 GB) copied, 11.4463 s, 289 MB/s
real 0m11.449s
user 0m6.868s
sys 0m15.372s
何志平先生:
再次运行netcat测试并在另一个窗口中观看htop。我打赌您会看到这里的瓶颈是dd reading/dev/zero的单线程。尝试与dd | netcat的'n'实例并行运行测试,其中'n'=系统中的#个内核。然后将所有并行运行的总带宽相加,以查看实际结果。(确保您在不同的端口上传输,并且让您的接收端运行多个线程,并在多个端口上侦听)