2016-08-29 118 views
0

我使用iperf的版本2.0.5測試兩個機器(這兩種運行Linux的Debian 8)之間TCP帶寬。我使用雙測試在-d, --dualtest選項的幫助下測量雙向帶寬,並且我有一個可以抓取測試結果(使用正則表達式)的python包裝器,並且我依賴於iperf報告輸出中兩個結果的出現順序。的iperf 2.0.5 TCP雙向測試輸出無序

但是,報告的結果不斷變化的順序,因爲沒有出現任何原因。 他們會出現一次這樣的:

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 

回答

0

確實有在這個測序記者沒有控制線程(輸出報告)與流量線程是分開的線程。由於在「同一時間」開始並且並行運行的線程有兩個線程,所以線程首先完成線程。

作爲一個方面說明,iperf 2.0.5有已知的bug和性能增強,已在2.0.9中解決。

鮑勃