ARM Linux穩定性測試工具--網路效能測試工具Iperf
Iperf是一個網路效能測試工具。Iperf 可以測試最大 TCP 和 UDP 頻寬效能,具有多種引數和 UDP 特性,可以根據需要調整,可以報告頻寬、延遲抖動和資料包丟失。
一、Linux端iperf
1、下載
下載最新版本原始碼包,下載地址:http://downloads.es.net/pub/iperf/。本文以iperf-3.0.3.tar.gz 版本為例。
2、解壓
$ mkdir ~/iperf $ cp iperf-3.0.3.tar.gz ~/iperf $ cd ~/iperf $ tar xzf iperf-3.0.3.tar.gz $ cd iperf-3.0.3/
命令中的“~”表示當前使用者目錄,比如在Linux主機上面工作的使用者是:veryarm,那麼命令中的“~”就代表路徑:/home/veryarm/目錄
3、配置
$ mkdir ../install $ export PATH=$PATH:/usr/local/arm-2010q1/bin #交叉編譯工具路徑加入系統環境變數! $ ./configure --host=arm-none-linux-gnueabi --prefix=/home/veryarm/iperf/install
其中,
- –host: 指定交叉編譯工具,一般為arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具體要和目標板用的交叉編譯工具對應。
- –prefix: 指定安裝目錄,編譯後的檔案會全部放在安裝目錄中。必須是絕對路徑!
4、編譯安裝
$ make # 編譯,如果是多核CPU,如四核,使用make -j4可提高編譯速度
$ make install # 安裝
5、去除除錯資訊並壓縮
使用交叉編譯工具 strip 去除映象的除錯資訊,在不影響使程式使用的情況下,程式大小一般可以減小50%左右。本程式我們僅用到其中2個檔案,bin下的iperf3和 lib下的libiperf.so.0.0.0。
$ cd ../install # 進入安裝目錄 $ arm-none-linux-gnueabi-strip bin/iperf3 # 去除iperf3映象除錯資訊 $ arm-none-linux-gnueabi-strip lib/libiperf.so.0.0.0 # 去除共享庫的除錯資訊 $ rm lib/libiperf.a lib/libiperf.la # 刪除兩個不用的庫檔案 $ tar jcf iperf-3.0.3.tar.bz2 bin lib # 壓縮bin和lib目錄
6、複製到目標板
將打包後的 iperf-3.0.3.tar.bz2壓縮包通過U盤、FTP或者NFS等方式拷貝到目標板,並分別解壓到/bin和/sbin目錄。
$ cp iperf-3.0.3.tar.bz2 ~ # 將複製壓縮包到目標板使用者目錄 $ tar jxf iperf-3.0.3.tar.bz2 bin -C /usr # 解壓映象到/usr/bin $ tar jxf iperf-3.0.3.tar.bz2 lib -C /usr # 解壓庫檔案到/usr/lib
7、使用
iperf有iperf2版本(命令iperf)和iperf3版本(命令iperf3),現在很多Linux系統和目標板系統預設有iperf2,而這兩個版本又不能混著用,也就是說,如果伺服器執行iperf2,而目標板上執行 iperf3 是無法測試的,會提示“connect failed: Connection refused”錯誤。有鑑於此,本文重點以新版的 iperf3 為例進行測試。
(1)電腦安裝iperf
複製第1步下載的原始碼到電腦上,在Ubuntu(或其他機器)上,使用以下命令安裝 iperf3 到電腦上:
$ cd iperf-3.0.3/ $ ./configure $ make $ sudo make install
iperf3程式會自動安裝到/usr/local/bin目錄下,其共享庫則安裝到/usr/local/lib/目錄下。
如果執行 iperf 命令時提示“iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory”錯誤,製作一個軟連線可解決,命令如下:
sudo ln -s /usr/local/lib/libiperf.so.0.0.0 /usr/lib/iperf.so.0
(2)啟動伺服器iperf
在Ubuntu上,以服務端方式啟動:
$ iperf3 -s -i 1
引數說明:
- -s:以伺服器方式啟動
- -i:以秒為單位顯示報告間隔
(3)啟動客戶端
在目標板上,以客戶端方式連線到服務端,測試10秒鐘。
$ iperf3 -c 192.168.1.100 -i 1 -w 448k -t 10
引數說明:
- -c:以client模式啟動,隨後跟著伺服器的IP地址
- -i:以秒為單位顯示報告間隔
- -w:指定TCP視窗大小,預設是8KB
- -t:測試時間,預設10秒
二、Windows端iperf
1、下載
官方下載連結:https://iperf.fr/iperf-download.php
下載對應自己系統的檔案:
如果你的是 64位系統,請下載iperf-*-win64.zip
如果你的是 32位系統,請下載iperf-*-win32.zip
2、安裝
將下載好的 iPerf 壓縮包解壓,然後有兩種安裝方法,一種是你想要臨時使用,一種是長期使用
長期使用簡單粗暴的方法
將 iperf3.exe 和 cygwin1.dll 檔案複製到 C:\Windows 路徑下即可,然後 Win鍵 + R鍵,輸入 cmd 按回車,將會彈出一個視窗,輸入 iperf3 --version 按回車,校驗是否配置成功,出現如圖提示內容,即安裝成功
3、啟用伺服器
按Win鍵 + R鍵,輸入 cmd 按回車,開啟終端。
然後輸入命令:iperf3 -s -B 0.0.0.0 -p 520 按回車,然後最小化該視窗,請注意不要關閉本視窗!!!
上述命令引數解釋:
-s 表示以伺服器方式啟動 iperf
-B 表示監聽指定 IP地址,0.0.0.0 表示監聽 本地IP 和 區域網(公網)IP
-p 表示監聽指定 埠,上述我們指定監聽的埠號是 520,該引數可有可無,沒有該引數時,預設堅挺的埠號是 5201
4、啟動客戶端
按Win鍵 + R鍵,輸入 cmd 按回車,開啟終端。
然後輸入命令:iperf3 -c 192.168.200.221 -b 1g -t 10 -i 1 -u -p 520 按回車
上述命令引數解釋:
-c 表示以客戶端方式啟動 iperf,使用 iPerf 伺服器IP 192.168.3.83 進行測試
-b 表示估計頻寬,就是最高能跑多少,1g 表示估計能跑 1Gbps
-t 表示持續測試時間,10 表示測試 10s
-i 表示多少秒輸出一次測試結果,1 表示 1s 重新整理一次`
-u 表示用 udp 連線來測速,預設是 tcp 連線測試,因為 tcp 要進行確認,所以不如 udp 測試的準確
-p 表示測試伺服器埠,520 表示測速伺服器的埠是 520