Linux網(wǎng)絡(luò)性能測試工具——Iperf
Iperf 是一個網(wǎng)絡(luò)性能測試工具,可以測試最大TCP和UDP帶寬性能,具有多種參數(shù)和UDP特性,可以根據(jù)需要調(diào)整,可以報告帶寬、延遲抖動和數(shù)據(jù)包丟失。
Iperf3在NLNR/DAST開的的原始版本進行重新設(shè)計,其目標(biāo)是更小、更簡單的代碼庫,并且還提供Iperf所不具備的新功能,如:nuttcp 和netperf
iperf有Linux,Windows,android,Mac等版本,下面結(jié)合實際網(wǎng)絡(luò)場景進行iperf工具使用的介紹
確保使用Iperf測試的服務(wù)端和客戶端都處于同一局域網(wǎng)內(nèi)!
1Iperf環(huán)境準(zhǔn)備
Iperf下載鏈接:
-
推薦下載源碼路徑:https://iperf.fr/iperf-download.php#source
-
官網(wǎng)下載:https://iperf.fr/iperf-download.php
-
Github下載:https://github.com/esnet/iperf/releases/tag
-
其他地址:https://downloads.es.net/pub/iperf/
以Ubuntu20.04為例,下載壓縮包iperf-3.1.3.tar.gz,解壓并進入目錄。
tar -zxvf iperf-3.1.3.tar.gz #解壓cd iperf-3.1.3/ #進入解壓目錄mkdir linux_install_dir #創(chuàng)建安裝目錄./configure --prefix=/home/dong/WorkSpace/Program/iperf-3.1.3/linux_install_dir #--prefix設(shè)置安裝目錄,即iperf3生成路徑,絕對路徑make clean #清除掉之前編譯的文件,確保不影響make #編譯make install #安裝
進入linux_install_dir/bin安裝目錄,可以看到iperf3可執(zhí)行文件。我們可以通過readelf -h iperf3 | grep Machine可以查看運行平臺。
Machine: Advanced Micro Devices X86-64
1.2Arm交叉編譯Iperf
tar -zxvf iperf-3.1.3.tar.gz cd iperf-3.1.3/ mkdir arm_install_dir ./configure --host=arm-linux-gnueabihf --prefix=/home/dong/WorkSpace/Program/iperf-3.1.3/arm_install_dir/ CFLAGS=-static make clean make make install
Machine: ARM
最后,將arm_install_dir/bin目錄下的iperf3,拷貝到目標(biāo)運行平臺即可!
至此,IPerf環(huán)境搭建完畢!
2指令分析
iperf工具是基于服務(wù)器和客戶端的工作模式,通訊雙方可以作為服務(wù)端和客戶端進行測試。
Iperf與Iperf3命令些許有些細(xì)微的差別,下面簡單介紹一下相關(guān)命令。
我們先鍵入iperf3 -h,查看命令列表
下面對常用的命令進行分析:
Server服務(wù)端指令: |
|
---|---|
iperf -s / iperf3 -s | 啟動服務(wù),默認(rèn)監(jiān)聽UDP,監(jiān)聽的默認(rèn)端口為5201 |
iperf -s -w 32M -D / iperf3 -s -D | 啟動服務(wù),-w 設(shè)置最大窗口,-D作為守護進程運行于后臺 |
iperf -i1 -u -s -p 5003 / iperf3 -s -p 5003 | 啟動服務(wù),更換監(jiān)聽端口為5003 |
Client |
|
iperf/iperf3 -c remotehost -i 1 -t 30 | 啟動iperf客戶端,remotehost為連接的IP,-i為時間間隔,-t為測試時間 |
iperf/iperf3 -c remotehost -i 1 -t 20 -R | 功能如上,-r 為反向測試,即 remotehost -> 本機的測 |
iperf/iperf3 -c remotehost -u -i 1 -b 200M | 啟動iperf客戶端,-u即測試udp,-b為最大測試帶寬為200M |
-
-d運行雙測試模式,進行上下行帶寬測試
這將使服務(wù)器端反向連接到客戶端,使用-L 參數(shù)中指定的端口(或默認(rèn)使用客戶端連接到服務(wù)器端的端口)。
-
-P:多線程模式,指定同時連接到服務(wù)器的數(shù)量。缺省值為1.需要客戶端和服務(wù)器上的線程支持。如:iperf -c 192.168.1.1 -P 10 -t 60客戶端同時向服務(wù)器端發(fā)起10個連接線程。
-
-p:指定服務(wù)器偵聽和客戶端連接的服務(wù)器端口,缺省值是5201
-
-w:設(shè)置最大窗口
-
-D:作為守護進程運行于后臺
-
-u:使用UDP通信
-
-R:反向測試
-
-i:設(shè)置時間間隔
-
-t:設(shè)置測試時間
-
-b:設(shè)置最大測試帶寬
3Iperf測試
3.1Linux平臺
iperf3 -c 192.168.x.1 -b 200M -u -O 3 -R
說明:帶寬測試通常采用UDP模式,因為能測出極限帶寬、時延抖動、丟包率。在進行測試時,首先以鏈路理論帶寬作為數(shù)據(jù)發(fā)送速率進行測試,例如,從客戶端到服務(wù)器之間的鏈路的理論帶寬為100Mbps,先用-b 100M進行測試,然后根據(jù)測試結(jié)果(包括實際帶寬,時延抖動和丟包率),再以實際帶寬作為數(shù)據(jù)發(fā)送速率進行測試,會發(fā)現(xiàn)時延抖動和丟包率比第一次好很多,重復(fù)測試幾次,就能得出穩(wěn)定的實際帶寬
3.2ARM平臺
iperf3 -s
3.3測試結(jié)果
PS F:\Develop\WIFI&BT\測試相關(guān)\測試工具\iperf-3.1.3-win64> .\iperf3.exe -c 192.168.4.234Connecting to host 192.168.4.234, port 5201[192.168.4.85 port 55914 connected to 192.168.4.234 port 5201 ] local [ ] Interval Transfer Bandwidth[0.00-1.01 sec 6.38 MBytes 53.0 Mbits/sec ] [1.01-2.00 sec 5.88 MBytes 49.6 Mbits/sec ] [2.00-3.01 sec 5.50 MBytes 45.6 Mbits/sec ] [3.01-4.01 sec 6.00 MBytes 50.6 Mbits/sec ] [4.01-5.01 sec 6.00 MBytes 50.4 Mbits/sec ] [5.01-6.00 sec 6.00 MBytes 50.6 Mbits/sec ] [6.00-7.01 sec 5.62 MBytes 46.7 Mbits/sec ] [7.01-8.01 sec 6.25 MBytes 52.7 Mbits/sec ] [8.01-9.01 sec 6.12 MBytes 51.4 Mbits/sec ] [9.01-10.00 sec 6.12 MBytes 51.7 Mbits/sec ] - - - - - - - - - - - - - - - - - - - - - - - - -[ ] Interval Transfer Bandwidth[0.00-10.00 sec 59.9 MBytes 50.2 Mbits/sec sender ] [0.00-10.00 sec 59.9 MBytes 50.2 Mbits/sec receiver ] iperf Done.
4總結(jié)
-
PC和模組確保在同一個局域網(wǎng)內(nèi)
-
PC運行iperf3 -s作為服務(wù)器,模組運行iperf3 -c 192.168.x.x -b 200M -u -O 3作為客戶端,測試上行帶寬,看sender
-
模組運行