工作中遇到一個問題,使用netcat 測試設備wifi吞吐量感覺非常吃力,遂使用iperf進行吞吐量測試。
前提
設備嵌入小linux系統,不可內部編譯的情況下,靜態編譯iperf可方便測試使用。
工具准備
iperf for linux 2.0.9 (自行靜態編譯),置於SD卡中方便使用
iperf for windows 2.0.9(這個網上下載就好了)
上行吞吐量測試
PC端
iperf -s -u -i 1 -p [port]
※參數說明:-s 作為服務端 , -u 進行udp測試 , -p [port] 為端口號,-i 1 為每1秒打印一次結果
設備端
./iperf -u -c [PC_IP] -t 60 -i 1 -b 120M -p [port]
※參數說明:-c 作為客戶端 , -t 60 持續60秒 , -i 1 每秒打印一次信息 , -b 120M 要求設備以120Mbps 的速度輸入數據 , PC_IP即電腦端的IP地址
特殊說明:此處 要求設備上行速率必須 >= 設備實際上行速率,比如此處要求以120Mbps速率上傳,但設備上行最高速率只能到達88Mbps,實際不影響測試效果。(要求速率過大可能會導致設備卡死)
由此可得出設備udp上行帶寬為85.5Mbits/sec
下行吞吐量測試
設備端:
./iperf -s -u -i 1 -p [port]
PC端:
iperf -u -c [PC_IP] -t 60 -i 1 -b 85M
※ 此處輸入帶寬選擇應以設備上行速率為基准,例如我們測到設備的上行速率為85.5Mbit/sec ,則此處參數應為 -b 90M 或者 -b 85M,多測幾次,直到設備丟包率0%左右。
PC端效果圖
設備端效果圖
信息說明:
0 – 60秒里設備總共接受到429MB的數據,包丟失率為29%,設備下行帶寬為60MMbits/sec。這里只是展示效果,實際過程中應調節PC端的發包速度,直到丟包率為0%-3%。
※ 特殊說明:
一般情況下,設備的上下行速率應為一致(目前測wifi吞吐量確實如此)。在測試設備有線網絡吞吐量時,設備存在上下行吞吐量不等的情況。
包丟失率大:在測設備下行吞吐量時,當 PC端輸入數據 > 設備端接收數據 ,會出現丟包。相當於入大於出,設備無法及時處理數據包,從而導致丟包。
如有不對,希望大家能夠指出,謝謝。