【问题标题】:Huge difference in netcat and iperf results for a 10G link10G 链路的 netcat 和 iperf 结果的巨大差异
【发布时间】:2014-11-25 22:33:10
【问题描述】:

看到 netcat 和 iperf 结果之间的巨大差异,我感到很困惑。我有 10 G 链接连接我的服务器和客户端。 iperf 的速度约为 10Gb/s,但 netcat 的速度仅为 280 MB/s。可能是什么错误?

对于 Iperf

服务器

iperf -s

客户

iperf -c 172.79.56.27 -i1 -t 10

结果:

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,

服务器

nc -v -v -l -n 2222 >/dev/null

客户

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

【问题讨论】:

    标签: networking tcp client-server netcat iperf


    【解决方案1】:

    用户1352179先生,

    再次运行您的 netcat 测试并在另一个窗口中观看 htop。我打赌你会看到这里的瓶颈是 dd 读取 /dev/zero 的单线程。尝试与 dd|netcat 的“n”个实例并行运行测试,其中“n”=系统中的内核数。然后将所有并行运行的总带宽加在一起以查看真实结果。 (确保您在不同的端口上传输并让您的接收端也运行多个线程并在多个端口上侦听)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-26
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多