轉發:Iperf3移植到ARM Linux及使用教程(已在ZedBoard上實現)
iperf是一個基於Client/Server的網路效能測試工具,可以測試TCP、UDP和SCTP頻寬質量,能夠提供網路吞吐率資訊,以及震動、丟包率,最大段和最大傳輸單元大小等統計資訊,幫助我們測試網路效能,定位網路瓶頸。其中抖動和丟包率適應於UDP測試,二頻寬測試適應於TCP和UDP。
iperf的好處是純粹發包和接收,防止硬碟拖後腿,影響測試結果。對於時延,iperf無能無力。但是iperf能夠計算抖動。在iperf測試中需要傳送大量的包,因此計算出來的抖動值,就是連續傳送時延差值的平均值。
iperf是一個開源軟體,其原始碼在GitHub上,地址:
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 配置
-
$ </span>mkdir ../install</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$
export
PATH=
$PATH</span><span class="hljs-symbol" style="color:rgb(28,0,207);"><span class="hljs-symbol">:/usr/local/arm-</span></span><span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">2010</span></span>q1/bin <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment">#交叉編譯工具路徑加入系統環境變數!</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ ./configure –host=arm-none-linux-gnueabi –prefix=
/home/veryarm
/iperf/install
其中,
- –host: 指定交叉編譯工具,一般為arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具體要和目標板用的交叉編譯工具對應。
- –prefix: 指定安裝目錄,編譯後的檔案會全部放在安裝目錄中。必須是絕對路徑!
4 編譯
-
$ </span>make <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 編譯,如果是多核CPU,如四核,使用make -j4可提高編譯速度</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ make install
# 安裝
完成後,檔案會自動安裝到上面指定的 install 目錄。
5 去除除錯資訊並壓縮
使用交叉編譯工具 strip 去除映象的除錯資訊,在不影響使程式使用的情況下,程式大小一般可以減小50%左右。本程式我們僅用到其中2個檔案,bin下的iperf3 和 lib下的libiperf.so.0.0.0。
-
$ </span>cd ../install <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 進入安裝目錄</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ arm-none-linux-gnueabi-strip bin/iperf3
# 去除iperf3映象除錯資訊
-
$ </span>arm-none-linux-gnueabi-strip lib/libiperf.so.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span> <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 去除共享庫的除錯資訊</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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目錄。
-
$ </span>cp iperf-<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3.0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3</span></span>.tar.bz2 ~ <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 將複製壓縮包到目標板使用者目錄</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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 到電腦上:
-
$ </span>cd iperf-<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3.0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3</span></span>/</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ ./configure
-
$ </span>make</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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:以秒為單位顯示報告間隔
- -w:指定TCP視窗大小,預設是8KB
(3)啟動客戶端
在目標板上,以客戶端方式連線到服務端,測試10秒鐘。
$ iperf3 -c 192.168.1.100 -i 1 -w 448k -t 10
引數說明:
- -c:以client模式啟動,隨後跟著伺服器的IP地址
- -t:測試時間,預設10秒
執行後,伺服器端顯示:
Accepted connection from 192.168.1.250, port 55010
[ 5] local 192.168.1.100 port 5201 connected to 192.168.1.250 port 55011
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.07 sec 2.12 MBytes 16.7 Mbits/sec
[ 5] 1.07-2.06 sec 2.38 MBytes 20.2 Mbits/sec
[ 5] 2.06-3.10 sec 2.38 MBytes 19.1 Mbits/sec
[ 5] 3.10-4.08 sec 2.38 MBytes 20.4 Mbits/sec
[ 5] 4.08-5.07 sec 2.62 MBytes 22.2 Mbits/sec
[ 5] 5.07-6.00 sec 2.38 MBytes 21.4 Mbits/sec
[ 5] 6.00-7.06 sec 2.75 MBytes 21.7 Mbits/sec
[ 5] 7.06-8.10 sec 2.50 MBytes 20.2 Mbits/sec
[ 5] 8.10-9.10 sec 2.50 MBytes 21.0 Mbits/sec
[ 5] 9.10-10.06 sec 2.50 MBytes 21.9 Mbits/sec
[ 5] 10.06-10.10 sec 128 KBytes 26.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.10 sec 24.6 MBytes 20.5 Mbits/sec 7 sender
[ 5] 0.00-10.10 sec 24.6 MBytes 20.5 Mbits/sec receive
客戶端顯示:
Connecting to host 192.168.1.100, port 5201
[ 4] local 192.168.1.250 port 55011 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.03 sec 2.25 MBytes 18.4 Mbits/sec 4 96.2 KBytes
[ 4] 1.03-2.02 sec 2.38 MBytes 20.0 Mbits/sec 0 112 KBytes
[ 4] 2.02-3.06 sec 2.38 MBytes 19.2 Mbits/sec 1 90.5 KBytes
[ 4] 3.06-4.02 sec 2.38 MBytes 20.7 Mbits/sec 0 96.2 KBytes
[ 4] 4.02-5.02 sec 2.62 MBytes 22.1 Mbits/sec 0 106 KBytes
[ 4] 5.02-6.03 sec 2.62 MBytes 21.9 Mbits/sec 1 76.4 KBytes
[ 4] 6.03-7.02 sec 2.50 MBytes 21.0 Mbits/sec 0 100 KBytes
[ 4] 7.02-8.00 sec 2.38 MBytes 20.4 Mbits/sec 0 112 KBytes
[ 4] 8.00-9.06 sec 2.62 MBytes 20.8 Mbits/sec 1 89.1 KBytes
[ 4] 9.06-10.03 sec 2.50 MBytes 21.7 Mbits/sec 0 105 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.03 sec 24.6 MBytes 20.6 Mbits/sec 7 sender
[ 4] 0.00-10.03 sec 24.6 MBytes 20.6 Mbits/sec receiver
iperf Done.
以上資訊顯示,當前網絡卡傳輸速度約為 20Mbit/s,下載速度 2.5 Mbit/s。
8 iperf引數
除了以上引數,我們還可以在iperf中使用下面的引數。
(1)通用引數
- -f:後接[k|m|K|M],分別表示以Kbits,Mbits,Kbytes,Mbytes顯示報告,預設以Mbits以單位,例如,
$ iperf3 –c 192.168.22.100 –f K
- -o:將報告和錯誤資訊輸出到檔案,例如,
iperf3 –c 192.168.1.100 -o iperf.log
- -p:指定伺服器端使用的埠或客戶端的埠。
-
$ </span>iperf3 –c <span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">192.168</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">22.66</span></span> –p <span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">1234</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ iperf3 –s –p
1234
- -u:指定使用udp協議
- -M:指定TCP資料包的最大mtu值。
- -N:設定TCP不延遲
(2)伺服器端
- -D:以服務方式執行iperf,例如,
$ iperf3 -s –D
- -R:停止iperf服務,針對-D
(3)客戶端
- -d:同時進行雙向傳輸測試
- -n:指定傳輸的位元組數。
$ iperf3 -c 192.168.21.66 -n 100000
- -r:單獨進行雙向傳輸測試
- -F:指定需要傳輸的檔案
- -T:指定ttl值
</div>
iperf是一個基於Client/Server的網路效能測試工具,可以測試TCP、UDP和SCTP頻寬質量,能夠提供網路吞吐率資訊,以及震動、丟包率,最大段和最大傳輸單元大小等統計資訊,幫助我們測試網路效能,定位網路瓶頸。其中抖動和丟包率適應於UDP測試,二頻寬測試適應於TCP和UDP。
iperf的好處是純粹發包和接收,防止硬碟拖後腿,影響測試結果。對於時延,iperf無能無力。但是iperf能夠計算抖動。在iperf測試中需要傳送大量的包,因此計算出來的抖動值,就是連續傳送時延差值的平均值。
iperf是一個開源軟體,其原始碼在GitHub上,地址:https://github.com/esnet/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 配置
-
$ </span>mkdir ../install</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ export
PATH=
$PATH</span><span class="hljs-symbol" style="color:rgb(28,0,207);"><span class="hljs-symbol">:/usr/local/arm-</span></span><span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">2010</span></span>q1/bin <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment">#交叉編譯工具路徑加入系統環境變數!</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ ./configure –host=arm-none-linux-gnueabi –prefix=
/home/veryarm
/iperf/install
其中,
- –host: 指定交叉編譯工具,一般為arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具體要和目標板用的交叉編譯工具對應。
- –prefix: 指定安裝目錄,編譯後的檔案會全部放在安裝目錄中。必須是絕對路徑!
4 編譯
-
$ </span>make <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 編譯,如果是多核CPU,如四核,使用make -j4可提高編譯速度</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ make install
# 安裝
完成後,檔案會自動安裝到上面指定的 install 目錄。
5 去除除錯資訊並壓縮
使用交叉編譯工具 strip 去除映象的除錯資訊,在不影響使程式使用的情況下,程式大小一般可以減小50%左右。本程式我們僅用到其中2個檔案,bin下的iperf3 和 lib下的libiperf.so.0.0.0。
-
$ </span>cd ../install <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 進入安裝目錄</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ arm-none-linux-gnueabi-strip bin/iperf3
# 去除iperf3映象除錯資訊
-
$ </span>arm-none-linux-gnueabi-strip lib/libiperf.so.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">0</span></span> <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 去除共享庫的除錯資訊</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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目錄。
-
$ </span>cp iperf-<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3.0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3</span></span>.tar.bz2 ~ <span class="hljs-comment" style="color:rgb(0,106,0);"><span class="hljs-comment"># 將複製壓縮包到目標板使用者目錄</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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 到電腦上:
-
$ </span>cd iperf-<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3.0</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">3</span></span>/</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ ./configure
-
$ </span>make</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ 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:以秒為單位顯示報告間隔
- -w:指定TCP視窗大小,預設是8KB
(3)啟動客戶端
在目標板上,以客戶端方式連線到服務端,測試10秒鐘。
$ iperf3 -c 192.168.1.100 -i 1 -w 448k -t 10
引數說明:
- -c:以client模式啟動,隨後跟著伺服器的IP地址
- -t:測試時間,預設10秒
執行後,伺服器端顯示:
Accepted connection from 192.168.1.250, port 55010
[ 5] local 192.168.1.100 port 5201 connected to 192.168.1.250 port 55011
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.07 sec 2.12 MBytes 16.7 Mbits/sec
[ 5] 1.07-2.06 sec 2.38 MBytes 20.2 Mbits/sec
[ 5] 2.06-3.10 sec 2.38 MBytes 19.1 Mbits/sec
[ 5] 3.10-4.08 sec 2.38 MBytes 20.4 Mbits/sec
[ 5] 4.08-5.07 sec 2.62 MBytes 22.2 Mbits/sec
[ 5] 5.07-6.00 sec 2.38 MBytes 21.4 Mbits/sec
[ 5] 6.00-7.06 sec 2.75 MBytes 21.7 Mbits/sec
[ 5] 7.06-8.10 sec 2.50 MBytes 20.2 Mbits/sec
[ 5] 8.10-9.10 sec 2.50 MBytes 21.0 Mbits/sec
[ 5] 9.10-10.06 sec 2.50 MBytes 21.9 Mbits/sec
[ 5] 10.06-10.10 sec 128 KBytes 26.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.10 sec 24.6 MBytes 20.5 Mbits/sec 7 sender
[ 5] 0.00-10.10 sec 24.6 MBytes 20.5 Mbits/sec receive
客戶端顯示:
Connecting to host 192.168.1.100, port 5201
[ 4] local 192.168.1.250 port 55011 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.03 sec 2.25 MBytes 18.4 Mbits/sec 4 96.2 KBytes
[ 4] 1.03-2.02 sec 2.38 MBytes 20.0 Mbits/sec 0 112 KBytes
[ 4] 2.02-3.06 sec 2.38 MBytes 19.2 Mbits/sec 1 90.5 KBytes
[ 4] 3.06-4.02 sec 2.38 MBytes 20.7 Mbits/sec 0 96.2 KBytes
[ 4] 4.02-5.02 sec 2.62 MBytes 22.1 Mbits/sec 0 106 KBytes
[ 4] 5.02-6.03 sec 2.62 MBytes 21.9 Mbits/sec 1 76.4 KBytes
[ 4] 6.03-7.02 sec 2.50 MBytes 21.0 Mbits/sec 0 100 KBytes
[ 4] 7.02-8.00 sec 2.38 MBytes 20.4 Mbits/sec 0 112 KBytes
[ 4] 8.00-9.06 sec 2.62 MBytes 20.8 Mbits/sec 1 89.1 KBytes
[ 4] 9.06-10.03 sec 2.50 MBytes 21.7 Mbits/sec 0 105 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.03 sec 24.6 MBytes 20.6 Mbits/sec 7 sender
[ 4] 0.00-10.03 sec 24.6 MBytes 20.6 Mbits/sec receiver
iperf Done.
以上資訊顯示,當前網絡卡傳輸速度約為 20Mbit/s,下載速度 2.5 Mbit/s。
8 iperf引數
除了以上引數,我們還可以在iperf中使用下面的引數。
(1)通用引數
- -f:後接[k|m|K|M],分別表示以Kbits,Mbits,Kbytes,Mbytes顯示報告,預設以Mbits以單位,例如,
$ iperf3 –c 192.168.22.100 –f K
- -o:將報告和錯誤資訊輸出到檔案,例如,
iperf3 –c 192.168.1.100 -o iperf.log
- -p:指定伺服器端使用的埠或客戶端的埠。
-
$ </span>iperf3 –c <span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">192.168</span></span>.<span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">22.66</span></span> –p <span class="hljs-number" style="color:rgb(28,0,207);"><span class="hljs-number">1234</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-variable" style="color:rgb(63,110,116);">$ iperf3 –s –p
1234
- -u:指定使用udp協議
- -M:指定TCP資料包的最大mtu值。
- -N:設定TCP不延遲
(2)伺服器端
- -D:以服務方式執行iperf,例如,
$ iperf3 -s –D
- -R:停止iperf服務,針對-D
(3)客戶端
- -d:同時進行雙向傳輸測試
- -n:指定傳輸的位元組數。
$ iperf3 -c 192.168.21.66 -n 100000
- -r:單獨進行雙向傳輸測試
- -F:指定需要傳輸的檔案
- -T:指定ttl值
</div>