Linux Iperf 測試網路效能

2021-08-08 01:54:06 字數 4214 閱讀 4688

iperf必須安裝在正在測試兩者之間的連線的兩台計算機上。 如果在個人計算機上使用基於unix或linux的作業系統,則可以在本地計算機上安裝iperf。 但是,如果正在測試linode的吞吐量,最好使用另一台伺服器作為終端,因為本地isp可能會施加可能影響測試結果的網路限制。

tcp clients & servers

iperf需要兩個系統,因為乙個系統必須充當乙個伺服器(dut),而另乙個則作為客戶端(server)。

dut端執行:

iperf -s
2.dut端會出現下列輸出:

server listening on tcp port 5001

tcp window size: 85.3 kbyte (default)

3.server端執行下面的命令連線到dut端對應的網口的ip:

iperf -c 198.51.100.5
4.server端會出現下面輸出:

client connecting to 198.51.100.5, tcp port 5001

tcp window size: 45.0 kbyte (default)

[ 3] local 198.51.100.6 port 50616 connected with 198.51.100.5 port 5001

[id] interval transfer bandwidth

[ 3] 0.0-10.1 sec 1.27 gbytes 1.08 gbits/sec

5.dut端也會出現下列輸出:

server listening on tcp port 5001

tcp window size: 85.3 kbyte (default)

[ 4] local 198.51.100.5 port 5001 connected with 198.51.100.6 port 50616

[ id] interval transfer bandwidth

[ 4] 0.0-10.1 sec 1.27 gbytes 1.08 gbits/sec

6.退出:ctrl + c.

使用iperf,還可以測試通過udp連線實現的最大吞吐量。

1.start a udp iperf server:

iperf -s

-u

2.server 的輸出:

server listening on udp port 5001

receiving 1470 byte datagrams udp buffer size: 208 kbyte (default)

3.連線client 和 server 使用下面的命令

iperf -c

198.51

.100

.5-u

4.我們已經通過-u選項告訴iperf我們是通過udp連線的,因為我們希望看到通過udp實現的最大吞吐量。輸出應類似於:

client connecting to 198.51.100.5, udp port 5001

sending 1470 byte datagrams

udp buffer size: 208 kbyte (default)

[ 3] local 198.51.100.6 port 58070 connected with 198.51.100.5 port 5001

[ id] interval transfer bandwidth

[ 3] 0.0-10.0 sec 1.25 mbytes 1.05 mbits/sec

[ 3] sent 893 datagrams

[ 3] server report:

[ 3] 0.0-10.0 sec 1.25 mbytes 1.05 mbits/sec 0.084 ms 0/ 893 (0%)

5.看看我們收到的輸出:1.05 mbits / sec遠遠低於我們在tcp測試中收到的輸出。 它也遠遠低於1gb dut(client)提供的最大出站頻寬上限。 這是因為預設情況下,iperf將udp客戶端的頻寬限制為每秒1 mbit。

6.可以使用-b標誌進行更改,將數字替換為要測試的最大頻寬速率。如果您正在測試網路速度,我們建議將此數字設定在dut(client)提供的最大頻寬上限之上。例如,這個測試是在1gb的執行緒上執行的:

iperf -c

198.51

.100

.5-u

-b1000m

7.這說明,如果可能,我們希望每秒最多可以達到1000 mbits。 -b標誌僅在使用udp連線時有效,因為iperf不會在tcp客戶端上設定頻寬限制。

8.輸出類似於:

client connecting to 198.51.100.5, udp port 5001

sending 1470 byte datagrams

udp buffer size: 208 kbyte (default)

[ 3] local 198.51.100.5 port 52308 connected with 198.51.100.5 port 5001

[ id] interval transfer bandwidth

[ 3] 0.0-10.0 sec 966 mbytes 810 mbits/sec

[ 3] sent 688897 datagrams

[ 3] server report:

[ 3] 0.0-10.0 sec 966 mbytes810 mbits/sec0.001 ms

0/688896 (0%) [ 3] 0.0-10.0 sec 1 datagrams received out-of-order

9.現在比以前看到的1.05 mbits / sec好多了!

在某些情況下,可能需要測試兩個伺服器的最大吞吐量。這可以使用iperf提供的內建雙向測試功能輕鬆完成。

iperf -c

198.51

.100

.5-d

結果是iperf將在原始客戶端伺服器上啟動伺服器和客戶端連線(198.51.100.6)。 一旦這樣做,iperf將原始的iperf伺服器連線到客戶端連線,該客戶端連線現在充當伺服器連線和客戶端連線。輸出類似於:

server listening on tcp port 5001

tcp window size: 85.3 kbyte (default)

client connecting to 198.51.100.5, tcp port 5001

tcp window size: 351 kbyte (default)

[ 3] local 198.51.100.6 port 50618 connected with 198.51.100.5 port 5001

[ 5] local 198.51.100.6 port 5001 connected with 198.51.100.5 port 58650

[ id] interval transfer bandwidth

[ 5] 0.0-10.1 sec 1.27 gbytes 1.08 gbits/sec

[ 3] 0.0-10.2 sec 1.28 gbytes 1.08 gbits/sec

在原始的iperf server將會看到:

client connecting to 198.51.100.6, tcp port 5001

tcp window size: 153 kbyte (default)

[ 6] local 198.51.100.5 port 58650 connected with 198.51.100.6 port 5001

[ 6] 0.0-10.1 sec 1.27 gbytes 1.08 gbits/sec

[ 5] 0.0-10.2 sec 1.28 gbytes 1.08 gbits/sec

Linux iperf網路效能測試

yum install iperf y udp模式 伺服器端 iperf u s 客戶端 iperf u c 192.168.1.1 b 100m t 60 在udp模式下,以100mbps為資料傳送速率,客戶端到伺服器192.168.1.1上傳頻寬測試,測試時間為60秒。iperf u c 192...

可靠性測試學習 可靠性測試理解

最近測試可靠性,參考了業界的一些思維,有些想法和建議 先說說軟體可靠性的定義,根據我測試的體會和思考,我覺得軟體的可靠性就是軟體系統發生故障後自動恢復或者人工干預使其能恢復到正常狀態的能力 業界的測試有些把容錯測試和可靠性測試搞混淆,其實兩者不一樣,容錯測試是通過模擬一些可能發生的已知的異常操作而檢...

可用性測試

工作一直緊張,但今天還是岔出了一件事情,就是對我負責的模組進行使用者可用性測試。兩個小時的測試還是有點收穫,小記之。剛剛從公司的培訓課程中學到了 usability test 沒想到這麼快就用到了實踐中,雖然這次的可用性測試不是很正式的從公司外部請使用者來做,也沒有用單面透視玻璃對使用者行為作 暗訪...