iperf 2.0.5 TCP双向测试输出乱序

时间:2016-08-29 17:51:02

标签: networking tcp server bandwidth iperf

我正在使用 iperf 2.0.5 来测试两台计算机之间的TCP带宽(两者都运行Linux Debian 8)。我在-d, --dualtest选项的帮助下使用双重测试来测量双向带宽,并且我有一个python包装器可以获取测试结果(使用正则表达式),并且依赖于iperf报告输出中两个结果的出现顺序

然而,报告的结果不断改变外观的顺序,没有任何原因。 它们会像这样出现:

Client connecting to ServerIP, TCP port 5002
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  5] local ClientIP port 53653 connected with ServerIP port 5002
[  4] local ClientIP port 5002 connected with ServerIP port 46306
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.6 sec  3.00 MBytes  2.36 Mbits/sec
[  4]  0.0-10.7 sec  40.8 MBytes  32.0 Mbits/sec

还有这样的时间:

Client connecting to ServerIP, TCP port 5002
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  5] local ClientIP port 54043 connected with ServerIP port 5002
[  4] local ClientIP port 5002 connected with ServerIP port 46372
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.7 sec  40.8 MBytes  32.0 Mbits/sec
[  5]  0.0-10.7 sec  3.00 MBytes  2.36 Mbits/sec

我已经确定了我的包装代码以假设第二个,其中包含最后一行中预期的更高带宽以及其前一行中的其他带宽。

  • 如何强制iperf报告的某个输出顺序?
  • 为什么使用45作为ID?
  • 有没有办法决定什么 数字用于ID?因为他们似乎正在改变 一个测试到另一个。也就是说,它使用67 例如 它在不同的时间或不同的机器上运行。

这就是我在客户端机器上运行iperf的方式:

iperf -c  ServerIP  -d -p 5002  -f m

,这是在服务器上:

iperf -s -p 5002 -D

1 个答案:

答案 0 :(得分:0)

实际上无法控制此排序,因为报告者线程(输出报告)是与流量线程分开的线程。由于有两个线程在“同一时间”启动并且并行运行,因此它是一个流量线程首先完成的竞赛。

作为旁注,iperf 2.0.5已经知道2.0.9中已经解决的错误和性能增强。

鲍勃