Iperf 是一個 TCP/IP 和 UDP/IP 的性能測量工具,能夠提供網路吞吐率信息,以及震動、丟包率、最大段和最大傳輸單元大小等統計信息;從而能夠幫助我們測試網路性能,定位網路瓶頸。
官網有各版本載點,請自行取用。
Iperf官網 : https://iperf.fr
安裝
Linux 下
apt-get install iperf
其他系統到參考官網
iperf 是一個命令行工具,當然如果搜索也能發現 GUI 的工具,比如 jperf, xjerf 等等。不過還是推薦使用命令行。
iperf 使用非常簡單的 C/S 架構,client 使用 -c
服務端使用 -s
。
實例
寬帶測試通常採用 UDP 模式,首先以鏈路理論帶寬作為數據發送速率進行測試,從客戶端到服務器之間的鏈路理論帶寬為 100 Mbps,先使用 -b 100M
測試,然後根據測試結果,以實際帶寬測試
服務端:
iperf -u -s # UDP 模式
客戶端第一種模式
iperf -u -c server_address -b 100M -t 60
在 UDP 模式下,以 100Mbps 為數據發送速率,客戶端到 IP 上傳帶寬測試,測試時間 60 秒。
客戶端同時發起 30 個線程連接,以 5Mbps 為數據發送速率
iperf -u -c server_address -b 5M -P 30 -t 60
或者客戶端直接進行上下行帶寬測試
iperf -u -c server_address -b 100M -d -t 60
如果不加 -u
則使用 TCP 模式
iperf -s
客戶端持續 60 秒
iperf -c server_address -t 60
設置服務端埠
使用 -p port
來指定服務端埠,默認是 5201
間隔時間報告
使用 -i interval
參數來表示間隔時間
iperf -c 192.168.2.105(server address) -i 2
表示間隔 2 秒列印結果
iperf 版本區別
iperf 自身存在很多個版本,Ubuntu 默認源中可能有一個叫做 iperf, 也有一個叫做 iperf3, 這兩個是不同版本的 iperf, 在使用 iperf 的時候要確保版本一致。不同的版本有不同的架構和不同的特性。
然而這兩個版本 iperf3 是不相容 iperf 2.x 的。可以這麼理解 iperf 是內存中的網路性能測試工具,而 iperf3 是從頭還是編寫的一套新程式,目標是簡化代碼量,並且設計為工具庫,可以嵌入到其他工具中。1
兩者不同的區別
服務端:
功能 | iperf | iperf3 |
---|---|---|
使用默認埠 | iperf -s | iperf3 -s |
守護模式下,使用 TCP window | iperf -s -w 32M -D | iperf3 -s -D |
Start UDP server on port 5003, and give 1 sec interval reports. Note that for iperf3 the -u option is passed to the server from the client. | iperf -i1 -u -s -p 5003 | iperf3 -s -p 5003 |
客戶端:
功能 | iperf / iperf3 |
---|---|
執行 30 秒測試,每秒發送結果 | iperf/iperf3 -c server_address -i 1 -t 30 |
執行逆向從服務端到本地測試 | iperf/iperf3 -c server_address -i 1 -t 10 -R |
使用 4 個並發,32M TCP buffer | iperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4 |
測試 200Mbps UDP | iperf/iperf3 -c server_address -u -i 1 -b 200M |
iperf3 增加了一些額外的功能,比如 -i
模式可以提供 TCP retransit (中繼)結果,並且 verbose 模式可以列印更多有效的信息,比如 CPU 利用率等等。
更多的使用可以參考這里
更多 iperf 2.0.5 和 iperf 2.0.8+ 和 iperf 3.1.5+ 的區別可以在這里 查看。
Linux 下
Linux 下
apt-get install iperf
其他系統到參考官網
iperf 是一個命令行工具,當然如果搜索也能發現 GUI 的工具,比如 jperf, xjerf 等等。不過還是推薦使用命令行。
iperf 使用非常簡單的 C/S 架構,client 使用 -c
服務端使用 -s
。
實例
寬帶測試通常采用 UDP 模式,首先以鏈路理論帶寬作為數據發送速率進行測試,從客戶端到服務器之間的鏈路理論帶寬為 100 Mbps,先使用 -b 100M
測試,然後根據測試結果,以實際帶寬測試
服務端:
iperf -u -s # UDP 模式
客戶端第一種模式
iperf -u -c server_address -b 100M -t 60
在 UDP 模式下,以 100Mbps 為數據發送速率,客戶端到 IP 上傳帶寬測試,測試時間 60 秒。
客戶端同時發起 30 個線程連接,以 5Mbps 為數據發送速率
iperf -u -c server_address -b 5M -P 30 -t 60
或者客戶端直接進行上下行帶寬測試
iperf -u -c server_address -b 100M -d -t 60
如果不加 -u
則使用 TCP 模式
iperf -s
客戶端持續 60 秒
iperf -c server_address -t 60
設置服務端端口
使用 -p port
來指定服務端端口,默認是 5201
間隔時間報告
使用 -i interval
參數來表示間隔時間
iperf -c 192.168.2.105(server address) -i 2
表示間隔 2 秒打印結果
iperf 版本區別
iperf 自身存在很多個版本,Ubuntu 默認源中可能有一個叫做 iperf, 也有一個叫做 iperf3, 這兩個是不同版本的 iperf, 在使用 iperf 的時候要確保版本一致。不同的版本有不同的架構和不同的特性。
然而這兩個版本 iperf3 是不兼容 iperf 2.x 的。可以這麼理解 iperf 是內存中的網絡性能測試工具,而 iperf3 是從頭還是編寫的一套新程序,目標是簡化代碼量,並且設計為工具庫,可以嵌入到其他工具中。1
兩者不同的區別
服務端:
功能 | iperf | iperf3 |
---|---|---|
使用默認端口 | iperf -s | iperf3 -s |
守護模式下,使用 TCP window | iperf -s -w 32M -D | iperf3 -s -D |
Start UDP server on port 5003, and give 1 sec interval reports. Note that for iperf3 the -u option is passed to the server from the client. | iperf -i1 -u -s -p 5003 | iperf3 -s -p 5003 |
客戶端:
功能 | iperf / iperf3 |
---|---|
執行 30 秒測試,每秒發送結果 | iperf/iperf3 -c server_address -i 1 -t 30 |
執行逆向從服務端到本地測試 | iperf/iperf3 -c server_address -i 1 -t 10 -R |
使用 4 個並發,32M TCP buffer | iperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4 |
測試 200Mbps UDP | iperf/iperf3 -c server_address -u -i 1 -b 200M |
iperf3 增加了一些額外的功能,比如 -i
模式可以提供 TCP retransit (中繼)結果,並且 verbose 模式可以打印更多有效的信息,比如 CPU 利用率等等。
更多的使用可以參考這裡
更多 iperf 2.0.5 和 iperf 2.0.8+ 和 iperf 3.1.5+ 的區別可以在這裡 查看。
更多 iperf 2.0.5 和 iperf 2.0.8+ 和 iperf 3.1.5+ 的區別可以在這裡 查看。
apt-get install iperf
其他系統到參考官網
iperf 是一個命令行工具,當然如果搜索也能发現 GUI 的工具,比如 jperf, xjerf 等等。不過還是推薦使用命令行。
iperf 使用非常簡單的 C/S 架構,client 使用 -c
服務端使用 -s
。
實例
寬帶測試通常采用 UDP 模式,首先以鏈路理論帶寬作為數據发送速率進行測試,從客戶端到服務器之間的鏈路理論帶寬為 100 Mbps,先使用 -b 100M
測試,然後根據測試結果,以實際帶寬測試
服務端:
iperf -u -s # UDP 模式
客戶端第一種模式
iperf -u -c server_address -b 100M -t 60
在 UDP 模式下,以 100Mbps 為數據发送速率,客戶端到 IP 上傳帶寬測試,測試時間 60 秒。
客戶端同時发起 30 個線程連接,以 5Mbps 為數據发送速率
iperf -u -c server_address -b 5M -P 30 -t 60
或者客戶端直接進行上下行帶寬測試
iperf -u -c server_address -b 100M -d -t 60
如果不加 -u
則使用 TCP 模式
iperf -s
客戶端持續 60 秒
iperf -c server_address -t 60
設置服務端端口
使用 -p port
來指定服務端端口,默認是 5201
間隔時間報告
使用 -i interval
參數來表示間隔時間
iperf -c 192.168.2.105(server address) -i 2
表示間隔 2 秒打印結果
iperf 版本區別
iperf 自身存在很多個版本,Ubuntu 默認源中可能有一個叫做 iperf, 也有一個叫做 iperf3, 這兩個是不同版本的 iperf, 在使用 iperf 的時候要確保版本一致。不同的版本有不同的架構和不同的特性。
然而這兩個版本 iperf3 是不兼容 iperf 2.x 的。可以這麽理解 iperf 是內存中的網絡性能測試工具,而 iperf3 是從頭還是編寫的一套新程序,目標是簡化代碼量,並且設計為工具庫,可以嵌入到其他工具中。1
兩者不同的區別
服務端:
功能 | iperf | iperf3 |
---|---|---|
使用默認端口 | iperf -s | iperf3 -s |
守護模式下,使用 TCP window | iperf -s -w 32M -D | iperf3 -s -D |
Start UDP server on port 5003, and give 1 sec interval reports. Note that for iperf3 the -u option is passed to the server from the client. | iperf -i1 -u -s -p 5003 | iperf3 -s -p 5003 |
客戶端:
功能 | iperf / iperf3 |
---|---|
執行 30 秒測試,每秒发送結果 | iperf/iperf3 -c server_address -i 1 -t 30 |
執行逆向從服務端到本地測試 | iperf/iperf3 -c server_address -i 1 -t 10 -R |
使用 4 個並发,32M TCP buffer | iperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4 |
測試 200Mbps UDP | iperf/iperf3 -c server_address -u -i 1 -b 200M |
iperf3 增加了一些額外的功能,比如 -i
模式可以提供 TCP retransit (中繼)結果,並且 verbose 模式可以打印更多有效的信息,比如 CPU 利用率等等。
更多的使用可以參考這里