使用方法
一、首先是介紹:iperf3是一個網絡帶寬測試工具,iperf3可以擦拭TCP和UDP帶寬質量。iperf3可以測量最大TCP帶寬,具有多種參數和UDP特性,iperf3可以報告帶寬、延遲抖動和數據包丟失。
二、使用iperf3,你可以調整與時序、緩沖區和協議(如TCP、UDP、SCTP)相關的幾個參數。它對網絡性能調優操作很方便,為了獲得最大或相當改善的網絡性能,你需要增加吞吐量以及網絡接收個發送功能的延遲。但是在進行實際調整之前,你需要執行一些測試以收集整體網絡性能統計信息,以指導你的調優過程。其結果包括以秒為單位的時間間隔,數據傳輸,帶寬(傳輸速率),丟失和其他有用的網絡性能參數,它主要用於協助調整特定路徑上的TCP連接。
TCP:
1.測量網絡帶寬
2.報告MSS/MTU值的大小和觀測值
3.支持TCP窗口值通過套接字緩沖
4.當P線程或Win32線程可用時,支持多線程。客戶端與服務端支持同時多重連接
UDP:
1.客戶端可以創建指定帶寬的UDP流
2.測量丟包
3.測量延遲
4.支持多播
5.當P線程可用時,支持多線程。客戶端與服務端支持同時多重連接(不支持Windows)
實驗環境:192.168.1.1 作為服務器端,192.168.1.2 作為客戶端
【服務端】參數介紹
iperf3 -s [options] #使用-s標志的是服務器,默認使用5201端口
[options] | 含義描述 |
-f 例:-f K |
指定生成報告的數據格式類型(其中k表示Kbits、m表示Mbits、g表示Gbits、K表示KBytes、M表示MBytes、G表示GBytes) |
-p 例:-p 4000 |
指定其他端口監聽(例如指定4000端口) |
-D 例:-D > iperf3.log |
作為守護程序運行,並將服務器消息寫入日志文件 |
【客戶端】參數介紹
iperf3 -c 192.168.1.1 [options] #使用-c標志以客戶端運行,192.168.1.1表示服務器IP
[options] | 含義描述 |
-f [k|m|g|K|M|G] 例:-f K |
指定生成報告的數據格式類型(其中k表示Kbits、m表示Mbits、g表示Gbits、K表示KBytes、M表示MBytes、G表示GBytes) |
-w 例:-w 200K |
使用-w標志設置TCP窗口大小、套接字緩沖區大小 |
-R | 在服務器發送和客戶端接收的反向模式下運行,可以添加-R開關。 |
-d | 運行雙向測試,意味着我們要同時測量兩個方向上的寬帶,可以使用-d選項。 |
--get-server-output | 如果要在客戶端輸出中獲取服務器結果,可以使用“--get-server-output”選項,此時我們便會在客戶端上獲取兩份數據。 |
-P 例:-P 5 |
使用-P選項設置並行客戶端測試進程的數量,如果設置為5,那么也就相當與對端建立五個連接 |
-i 例:-i 3 |
設置每次報告之間的時間間隔,單位為秒。如果設置為非零值,就會按照此時間間隔輸出測試報告。默認值為零。 |
-m | 輸出TCP MSS值(通過TCP_MAXSEG支持)。MSS值一般比MTU值小40字節。(通常情況) |
-u | 使用UDP方式,不加這個參數默認是TCP模式 |
-b [K|M|G] 例:-b 50M |
UDP模式使用的帶寬,單位bits/sec。此選項與-u選項相關。默認值是1 Mbit/sec。 |
-t 例:-t 60 |
設置傳輸的總時間。Iperf在指定的時間內,重復的發送指定長度的數據包。默認是10秒鍾。 在指定“-n”參數后,“-t”參數失效 |
-p 例:-p 5200 |
指定服務器監聽端口(例如服務器指定端口為5200) |
-n [K|M|G] 例:-n 100M |
指定傳輸數據包的字節數 在指定“-n”參數后,“-t”參數失效 |
-I | 指定讀寫緩沖區的長度。TCP方式默認大小為8KB,UDP方式默認大小為1470字節 |
解決iperf發包高丟包率的問題
使用iperf生成並發送數據,在數據包長度固定的情況下(L默認為1470字節),帶寬越大,每秒鍾發送的數據包越多。
例如:
iperf -u -c 10.0.0.2 -p 8080 -t 10 -i 1 -b 10M iperf -u -c 10.0.0.3 -p 8080 -t 10 -i 1 -b 100m
顯然:b為100m時每秒發送的數據包的數量為b為10m時的10倍。
當鏈路延時較大時,每秒發送的數據包數量太多時會造成比較大的丟包率
如下:
客戶端
服務器端
當增加每個數據包的大小減少發送的數據包數量時可以顯著降低高丟包率
iperf -u -c 10.0.0.3 -p 8080 -t 10 -i 1 -l 50k -b 100m
參考:
https://blog.51cto.com/ning235/1567273
https://blog.csdn.net/haimianxiaojie/article/details/51077494