我正在使用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 报告的特定输出顺序?
- 为什么使用
4
and5
作为 ID? - 有没有办法决定 ID 使用哪些数字?因为他们似乎正在从一项测试更改为另一项测试。也就是说,它使用
6
,7
例如,当它在不同的时间或从不同的机器运行时。
这就是我在客户端机器上运行 iperf 的方式:
iperf -c ServerIP -d -p 5002 -f m
这是在服务器机器上:
iperf -s -p 5002 -D