GNU/Linux >> Linux の 問題 >  >> Cent OS

Iperf を使用して Linux でネットワーク パフォーマンスをテストする方法

iperf は、2 つのシステム間のネットワーク パフォーマンスをテストするために使用されるツールです。 iperf アプリケーションは、ネットワークのパフォーマンスに関するより多くの指標を提供します。 iperf アプリケーションはデフォルトではインストールされませんが、ほとんどのディストリビューションのパッケージ マネージャーによって提供されます。

CentOS/RHEL/Fedora システムでは、yum を使用して iperf パッケージをインストールします。

# yum install iperf

iperf には、2 つのシステム間のネットワーク スループットをテストするための「クライアント」と「サーバー」の概念があります。

次の例では、スループットを最大化するために大きな送受信バッファ サイズを設定し、ネットワークを完全に動作させるのに十分な長さの 60 秒間テストを実行します。

サーバー

サーバー システムでは、iperf はクライアント接続をリッスンするように指示されます。

server # iperf3 -i 10 -s

ここでは、
-i – 定期的な帯域幅の更新を提供する間隔
-s – サーバーとしてリッスン

特定のコマンド ライン スイッチの詳細については、man iperf3 を参照してください。

クライアント

クライアント システムでは、iperf はホスト名または IP アドレスを介してリッスン サーバーに接続するように指示されます。

client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]

ここでは、
-i – 定期的な帯域幅の更新を提供する間隔
-w – ソケット バッファ サイズ (TCP ウィンドウに影響します)。バッファ サイズも、このクライアント コマンドによってサーバーに設定されます
-t – テストの実行時間 (秒単位)
-c – リッスン サーバーに接続します…

特定のコマンド ライン スイッチの詳細については、man iperf3 を参照してください。

テスト結果

テストが完了すると、クライアントとサーバーの両方が結果を報告します。

サーバー

server # iperf3 -i 10 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.0.0.2, port 22216
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.2 port 22218
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.00  sec  17.5 GBytes  15.0 Gbits/sec                  
[  5]  10.00-20.00  sec  17.6 GBytes  15.2 Gbits/sec                  
[  5]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec                  
[  5]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec                  
[  5]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec                  
[  5]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec                  
[  5]  60.00-60.04  sec  82.2 MBytes  17.3 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-60.04  sec  0.00 Bytes    0.00 bits/sec                  sender
[  5]   0.00-60.04  sec   107 GBytes  15.3 Gbits/sec                  receiver

クライアント

client # iperf3 -i 10 -w 1M -t 60 -c 10.0.0.1
Connecting to host 10.0.0.1, port 5201
[  4] local 10.0.0.2 port 22218 connected to 10.0.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  10.00-20.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec    0   6.01 MBytes       
[  4]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
[  4]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec    0             sender
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec                  receiver

結果を読む

これら 2 つのシステム間で、毎秒 15.4 ギガビットまたは毎秒約 1835 MiB (メビバイト) の帯域幅を達成できました。

ここで、
間隔 はテスト間隔を意味し、デフォルト値は 10 秒で、「0.0-10.0 秒」と表示されます
Transfer テストの過程で 2 つのノード間で転送されるデータ量を意味します。
帯域幅 iperf テストを使用するパフォーマンス指標です。

注意 :サーバーはデフォルトで TCP ポート 5201 をリッスンします。このポートは、存在するすべてのファイアウォールを通過できるようにする必要があります。使用するポートは、-p コマンドライン オプションで変更できます。

UDP プロトコルを使用したネットワーク パフォーマンスのテスト

上記のように、デフォルトの iperf はテストに TCP プロトコルを使用します。オプション「-u」を追加 」を使用して、パフォーマンス テストに UDP プロトコルを使用します。

1. 最初のステップは、サーバーを起動することです。

# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------

[  3] local 1.1.1.1 port 5001 connected with 1.1.1.2 port 51598
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

2. クライアント側のコマンドは以下の通りです。

# iperf -u -c server
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 51598 connected with 1.1.1.1 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:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

UDP モードでのデフォルト帯域幅の変更

UDP モードでは、クライアントはデフォルトの帯域幅 (1 メガビット/秒) を使用してパケットをサーバーに送信するため、UDP の帯域幅のテスト結果は 1.05 メガビット/秒であることがわかります。最適なネットワーク帯域幅を得るために、オプション「-b value」を追加できます ” 送信帯域幅を増やす:

# iperf -u -c server -b 1000M
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 58097 connected with 1.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes    948 Mbits/sec
[  3] Sent 806540 datagrams
[  3] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.08 GBytes    929 Mbits/sec  0.010 ms 16203/806540 (2%)

最大転送サイズ (MTU) の測定

-m オプションは、iperf に最大転送サイズ (MTU) も検出するように指示します:

# iperf -mc 192.168.10.12
------------------------------------------------------------
Client connecting to 192.168.10.12, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.13 port 46558 connected with 192.168.10.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   113 MBytes  94.7 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)


Cent OS
  1. LinuxでBusyBoxを使用する方法

  2. Linuxでcronを使用する方法

  3. LinuxでFINDを使用する方法

  1. LinuxでSuコマンドを使用する方法

  2. Linux で ldconfig コマンドを使用する方法

  3. Linux で ipset コマンドを使用する方法

  1. Linuxのアクセシビリティ設定の使用方法

  2. Linuxでpkgsrcを使用する方法

  3. Linuxmtrコマンドの使用方法