iperf 2.0.5 TCP双向测试输出乱序
iperf 2.0.5 TCP bidirectional test output out of order
我正在使用 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
和 5
作为 ID?
- 有没有办法决定什么
数字用于 ID?因为他们似乎正在改变
一个测试另一个。也就是说,它使用
6
和 7
例如 时
它 运行 在不同的时间或来自不同的机器。
这就是我在客户端机器上 运行 iperf 的方式:
iperf -c ServerIP -d -p 5002 -f m
这是在服务器机器上:
iperf -s -p 5002 -D
确实无法控制此排序,因为报告线程(输出报告)是与流量线程不同的线程。由于有两个线程在 "same time" 和 运行 处并行启动,因此这是一场流量线程首先完成的竞赛。
附带说明一下,iperf 2.0.5 有一些已知错误和性能增强,这些错误和性能增强已在 2.0.9 中解决。
鲍勃
我正在使用 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
和5
作为 ID? - 有没有办法决定什么
数字用于 ID?因为他们似乎正在改变
一个测试另一个。也就是说,它使用
6
和7
例如 时 它 运行 在不同的时间或来自不同的机器。
这就是我在客户端机器上 运行 iperf 的方式:
iperf -c ServerIP -d -p 5002 -f m
这是在服务器机器上:
iperf -s -p 5002 -D
确实无法控制此排序,因为报告线程(输出报告)是与流量线程不同的线程。由于有两个线程在 "same time" 和 运行 处并行启动,因此这是一场流量线程首先完成的竞赛。
附带说明一下,iperf 2.0.5 有一些已知错误和性能增强,这些错误和性能增强已在 2.0.9 中解决。
鲍勃