網路性能測試工具 Iperf



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

兩者不同的區別

服務端:

功能iperfiperf3
使用默認埠iperf -siperf3 -s
守護模式下,使用 TCP windowiperf -s -w 32M -Diperf3 -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 5003iperf3 -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 bufferiperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4
測試 200Mbps UDPiperf/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

兩者不同的區別

服務端:

功能iperfiperf3
使用默認端口iperf -siperf3 -s
守護模式下,使用 TCP windowiperf -s -w 32M -Diperf3 -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 5003iperf3 -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 bufferiperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4
測試 200Mbps UDPiperf/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

兩者不同的區別

服務端:

功能iperfiperf3
使用默認端口iperf -siperf3 -s
守護模式下,使用 TCP windowiperf -s -w 32M -Diperf3 -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 5003iperf3 -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 bufferiperf/iperf3 -c server_address -i 1 -t 20 -w 32M -P 4
測試 200Mbps UDPiperf/iperf3 -c server_address -u -i 1 -b 200M

iperf3 增加了一些額外的功能,比如 -i 模式可以提供 TCP retransit (中繼)結果,並且 verbose 模式可以打印更多有效的信息,比如 CPU 利用率等等。

更多的使用可以參考這里



Author: admlplmaduty

發佈留言