2011年9月30日 星期五

iperf3測試網路負載

iperf是一個透過tcp測試系統網路能力的工具,由於可以專門測試tcp層不管application layer的干擾,因此特別適合用於針對系統底層網路能力來測試,例如網路卡、驅動程式、作業系統等等。

目前iperf已經出到3.0版,還在beta中,不過根據經驗之前版本的iperf反而不是很穩定,因此建議還是以iperf3作為測試的工具。

安裝
可以到此處下載
解開後經過編譯與安裝就可使用

註解: 如果使用ubuntu,需要先安裝build-essential uuid-dev,然後才能編譯與安裝
apt-get install build-essential uuid-dev
./configure
make
make install

執行
執行架構可分為client與server兩端

在server端執行如下指令即可
iperf3 -s

在client端執行下列指令
iperf3 -c -t -i

進階參數設定
還有下列幾個進階的參數可以設定,但若要使用下列參數,則server與client都要同時下一樣的參數值才行
-w n[KM]  指定 TCP window size
-l n[KM] 指定 read/write buffer 大小(預設為 8k)
-Pn (大寫的P) client 端指定同時 (parallel) 跑幾個的 threads

結果
在server端與client端都會有結果出現,兩者會不太一樣,但相當接近
最後cilent的結果如下
[ ID] Interval       Transfer     Bandwidth
      Sent
[  5] 0.00-20.00 sec  80.6 GBytes  34.6 Gbits/sec
      Received
[  5] 0.00-20.00 sec  80.6 GBytes  34.6 Gbits/sec 
分別代表執行時間、總下載數(單位為byte)與平均傳輸速度(單位為bits)

參考資料
iperf3官方網頁
iperf2官方網頁
更詳細的教學網頁
Windows版本的教學網頁