当我使用多个线程运行iperf UDP测试时,它只是挂起。它永远不会回来。但是同一个测试总是用单流完成。这是我的iperf版本和细节:
$ iperf --v
iperf version 2.0.5 (08 Jul 2010) pthreads
客户端(10.20.32.50)命令:$ iperf -c 10.20.32.52 -P 2 -t 10 -u -b 1g
服务器(10.20.32.52)命令:$ iperf -s -u
客户端提供以下输出并且永远不会完成
$ iperf -c 10.20.32.52 -P 2 -t 10 -u -b 1g
------------------------------------------------------------
Client connecting to 10.20.32.52, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 4] local 10.20.32.50 port 33635 connected with 10.20.32.52 port 5001
[ 3] local 10.20.32.50 port 56336 connected with 10.20.32.52 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 483 MBytes 406 Mbits/sec
[ 4] Sent 344820 datagrams
[ 4] Server Report:
[ 4] 0.0-696.8 sec 483 MBytes 5.82 Mbits/sec 0.020 ms 229/344819 (0.066%)
[ 4] 0.0-696.8 sec 478 datagrams received out-of-order
服务器输出如下
$ iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 12] local 10.20.32.52 port 5001 connected with 10.20.32.50 port 60971
[ 10] local 10.20.32.52 port 5001 connected with 10.20.32.50 port 34388
[ 10] 0.0-823.4 sec 483 MBytes 4.92 Mbits/sec 0.018 ms 420/344819 (0.12%)
[ 10] 0.0-823.4 sec 365 datagrams received out-of-order
我的两台客户端/服务器机器都是32核,速度为10 Gbps。请注意,客户端可以使用单个线程/流运行良好,即$ iperf -c 10.20.32.52 -P 1 -t 10 -u -b 1g
始终完成。任何帮助表示赞赏!
这个问题最初是作为对类似问题[1]的回答而提出的,但是与iperf3有关。在收到建议之后,我又提出了一个问题。
Nodir
[1] https://stackoverflow.com/questions/31836985/iperf3-parallel-udp-not-running/32728777