[研究ノート] Iperf3ネットワークパフォーマンステストツール
ネットワークパフォーマンスの評価は、主にネットワーク帯域幅の使用率を監視することであり、ネットワーク帯域幅の使用率を最大化することがネットワークパフォーマンスを確保するための基礎です。ただし、不当なネットワーク設計とネットワークセキュリティの脆弱性により、ネットワーク帯域幅の使用率は高くありません。ネットワーク帯域幅の使用率が低い原因を見つけるには、ネットワーク伝送を監視する必要があります。現時点では、いくつかのネットワークパフォーマンス評価ツールを使用する必要があり、Iperfはそのようなネットワーク帯域幅テストツールです。
1. Iperfの概要
1. iperfとは何ですか?
Iperfは、イリノイ大学が開発したオープンソースのネットワークパフォーマンステストツールです。帯域幅、ジッター、パケット損失率など、ネットワークノード間のTCPまたはUDP接続のパフォーマンス(ループバックを含む)をテストするために使用できます。ジッターおよびパケット損失率はUDPテストに適していますが、帯域幅テストはTCPおよびUDPに適しています。
Iperfは、TCP / IPおよびUDP / IPに基づくネットワークパフォーマンステストツールです。これを使用して、ネットワーク帯域幅とネットワーク品質を測定し、ネットワーク遅延ジッター、パケット損失率、最大伝送ユニットなどの統計情報を提供できます。ネットワーク管理者は、この情報に基づいてネットワークパフォーマンスの問題を理解および判断できるため、ネットワークのボトルネックを特定し、ネットワーク障害を解決できます。
Iperfはコマンドラインモードに基づくネットワークパフォーマンステストツールであり、クロスプラットフォームであり、Windows、Linux、およびMac全体で完全なプラットフォームサポートを提供します。iperfは、プロセス全体でメモリを送信/受信バッファとして使用し、ディスクパフォーマンスの影響を受けず、マシン構成の要件が非常に低くなっています。ただし、コマンドラインツールであるため、iperfはテストパターンの出力をサポートしていません。
Iperfは、さまざまなパラメーターとUDP特性を使用して、TCPおよびUDPの帯域幅品質をテストでき、ルーター、ファイアウォール、スイッチなどの一部のネットワークデバイスのパフォーマンスをテストするために使用できます。
2. Iperfの機能
(1)TCP
①ネットワーク帯域幅の測定
②MSS / MTU値のサイズと観察を報告する
③ソケットバッファを介したTCPウィンドウ値のサポート
④PスレッドまたはWin32スレッドが利用可能な場合、マルチスレッドをサポートします。クライアントとサーバーは同時に複数の接続をサポートします
(2)UDP
①クライアントは指定された帯域幅でUDPストリームを作成できます
②パケットロスの測定
③測定遅れ
④マルチキャストをサポート
P Pスレッドが使用可能な場合、マルチスレッドをサポートします。クライアントとサーバーは複数の同時接続をサポートします(Windowsはサポートされません)
(3)その他の側面
①必要に応じて、K(キロ)およびM(メガ)をオプションとして使用できます。たとえば、131072バイトは128Kに置き換えることができます。
②総稼働時間を指定でき、転送する総データ量も設定できます。
③レポートで、データに最適な単位を選択します。
④サーバーは、シングルスレッドテストを待機する代わりに、複数の接続をサポートします。
network指定された時間間隔で繰り返しネットワーク帯域幅、変動、パケット損失を表示します。
⑥サーバーはバックグラウンドプログラムとして実行できます。
⑦サーバーはWindowsサービスとして実行できます。
typical典型的なデータフローを使用して、利用可能な帯域幅に対するリンク層圧縮の影響をテストします。
次に、Iperfのインストール
1. iperfのバージョン
Iperfには、WindowsバージョンとLinuxバージョンの2つのバージョンがあります。
(1)Unix/Linux版
Unix / Linuxのバージョンはより速く更新され、最新バージョンです。最新バージョンはiperf3.0です。
Linuxバージョンのダウンロードアドレス:http : //code.google.com/p/iperf/downloads/list
精度をテストするには、Linux環境テストを使用してみてください。
(2)Windows版
iperfのWindowsバージョンはjperfまたはxjperfと呼ばれ、更新に時間がかかりますが、最新バージョンは現在1.7(jperfにパッケージ化されています)です。
Windowsバージョンのダウンロードアドレス:http : //sourceforge.net/projects/iperf/files/jperf/jperf 2.0.0 /
jperfはiperfに基づいて開発されたグラフィカルインターフェイスプログラムであり、複雑なコマンドラインパラメーターの構築を簡素化し、テスト結果を保存しながら、結果をリアルタイムでグラフィック表示することもできます。
2. iperf for Windowsのインストール
Windowsバージョンのiperfの場合、インストールパッケージをダウンロードして直接解凍し、解凍したiperf.exeとcygwin1.dllを%systemroot%ディレクトリにコピーします。
3. Linuxへのiperfのインストール
(1)オンラインインストール:
CentOSのインストール:yum install -y iperf3
DebianおよびUbuntuのインストール:apt-get install iperf3
(2)オフラインインストール:対応するバージョンのインストールパッケージをダウンロードします。
gunzip -c iperf-
3、Iperfの使用
1. Iperfの動作モード
Iperfは、ローカルイーサネット、インターネットアクセス、Wi-Fiネットワークなど、あらゆるIPネットワークで実行できます。作業モードでは、iperfはサーバーモードとクライアントモードで実行されます。そのサーバーは主に着信テストリクエストをリッスンするために使用され、クライアントは主にテスト接続セッションを開始するために使用されます。したがって、iperfを使用するには少なくとも2台のサーバーと1台が必要ですサーバーモードで実行し、他はクライアントモードで実行します。
iperfのインストールが完了したら、「iperf3 -h」を実行してiperfの詳細な使用方法を表示します。iperfのコマンドラインオプションは、クライアント側とサーバー側の共通オプション、サーバー側の特別オプション、クライアント側の特別オプションの3つのカテゴリに分かれています。
2. Iperfの共通パラメーター(十分なテスト)
(1)-s、-server:iperfサーバーモード、デフォルトのリスニングポートは5201です。例:iperf -s
(2)-c、--client host:iperf client mode、host is the server address、eg:iperf -c 222.35.11.23
(3)-i、--interval:各レポート間の時間間隔を秒単位で指定します。例:iperf3 -c 192.168.12.168 -i 2
(4)-p、--port:サーバーが監視するポートまたはクライアントが接続するポートを指定します。デフォルトはポート5001です。
(5)-u、-udp:パケットの送信にUDPプロトコルが使用されることを示します。このパラメーターなしで、TCPプロトコルが使用されることを示します。
(6)-l、--len:読み書きバッファの長さを設定します。単位はバイトです。TCPモードのデフォルトは8KBで、UDPモードのデフォルトは1470バイトです。通常、PPSをテストする場合の値は16、BPSをテストする場合の値は1400です。
(7)-b、--bandwidth [K | M | G]:UDPモードで使用される帯域幅をビット/秒で指定します。デフォルト値は1 Mビット/秒です。
(8)-t、--time:データ送信の合計時間を指定します。つまり、指定された時間内に指定された長さのデータパケットを繰り返し送信します。デフォルトは10秒です。
(9)-A:CPUアフィニティ。特定のiperf3プロセスを対応する番号付きの論理CPUにバインドして、異なるCPU間のiperfプロセスのスケジューリングを回避できます。
3.共通パラメーター(サーバーとクライアントで共有)
(1)-f、--farmat [k | m | g | K | M | G]:帯域幅の出力単位を指定します。「[k | m | g | K | M | G]」はKビット、Mビット、 Gbits、KBytes、MBytes、GBytesは、出力結果、デフォルトのMbitを表示します。例:iperf3 -c 192.168.12.168 -f M
(2)-p、--port:サーバーが監視するポートまたはクライアントが接続するポートを指定します。デフォルトはポート5001です。
(3)-i、--interval:各レポート間の時間間隔を秒単位で指定します。例:iperf3 -c 192.168.12.168 -i 2
(4)-F:帯域幅テスト用のデータストリームとしてファイルを指定します。例:iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz
4.サーバー固有のパラメーター
(1)-s、-server:iperfサーバーモード、デフォルトのリスニングポートは5201です。例:iperf -s
(2)-c、--client host:iperfがサーバーモードで実行され、-cパラメーターでホストを指定した場合、iperfは指定されたホストからの接続のみを受け入れます。このパラメーターはUDPモードでは機能しません。
(3)-D:IperfをUnixプラットフォームのバックグラウンドデーモンとして実行します。Win32プラットフォームでは、Iperfはサービスとして実行されます。
(4)-R:Iperfサービスをアンインストールします(Windowsのみ)。
(5)-o:出力を指定したファイルにリダイレクトします(Windowsの場合のみ)。
(6)-P、--parallel:サーバーがシャットダウンされるまでに維持される接続の数。デフォルトは0です。これは、接続が常に受け入れられることを意味します。
5.クライアント固有のパラメーター
(1)-c、--client host:iperf client mode、host is the server address、eg:iperf -c 222.35.11.23
(2)-u、-udp:メッセージの送信にUDPプロトコルが使用されることを示し、このパラメーターなしでTCPプロトコルが使用されることを示します。
(3)-b、--bandwidth [K | M | G]:UDPモードで使用される帯域幅をビット/秒で指定します。デフォルト値は1 Mビット/秒です。
(4)-t、--time:データ送信の合計時間を指定します。つまり、指定された時間内に指定された長さのデータパケットを繰り返し送信します。デフォルトは10秒です。
(5)-l、--len:読み書きバッファの長さを設定します。単位はバイトです。TCPのデフォルトは8KB、UDPのデフォルトは1470バイトです。通常、PPSをテストする場合の値は16、BPSをテストする場合の値は1400です。
(6)-n、--num [K | M | G]:送信されるデータパケットのバイト数を指定します。例:iperf3 -c 192.168.12.168 -n 100M
(7)-P、--parallel:クライアントとサーバー間で使用されるスレッドの数を指定します。デフォルトは1スレッドです。クライアントとサーバーは、このパラメーターを同時に使用する必要があります。
(8)-w、-window:ソケットバッファーサイズを指定します。TCPモードでは、この設定はTCPウィンドウのサイズです。UDPモードでは、この設定はUDPパケットを受信するためのバッファーサイズであり、受信可能なパケットの最大値を制限するために使用されます。
(9)-B、--bind:ホストアドレスまたはインターフェースをバインドするために使用されますこのパラメーターは、複数のネットワークインターフェースを持つホストにのみ使用されます。UDPモードでは、このパラメーターを使用して、マルチキャストグループをバインドおよび結合します。
(10)-M、--mss:TCP最大情報セグメントの値を設定します
(11)-N、--nodelay:遅延なしでTCPを設定
(12)-V:IPv6アドレスをバインドします。
(13)-d、--dualtest:デュアルテストモードを実行します。サーバーは、-Lパラメーターで指定されたポート(またはクライアントがデフォルトでサーバーに接続するために使用するポート)を使用して、逆にクライアントに接続されます。対話モードを実行するには、パラメーター-rを使用します。
(14)-L、--listenport:サーバーがクライアントに接続するときに使用されるポートを指定します。デフォルトでは、クライアントはサーバーポートに接続します。
(15)-r、--tradeoff:往復試験モード。クライアントからサーバーへのテストが終了すると、サーバーはクライアントに接続します。クライアント接続が終了すると、リバース接続がすぐに開始されます。双方向テストを同時に実行する必要がある場合は、-dパラメータを試してください。
6.その他のパラメーター
(1)-h、--help:コマンドラインリファレンスを表示して終了します。
[root]# iperf3 -h
Usage: iperf3 [-s|-c host] [options]
iperf3 [-h|--help] [-v|--version]
(2)-v、--version:バージョン情報とコンパイル情報を表示して終了します。
4、Iperfの使用例
1.環境の準備:
(1)サーバー側IPアドレス:192.168.0.120
(2)サーバー側IPアドレス:192.168.0.121
2. TCPスループットをテストする
(1)サーバー側で、iperfのサーバーモードを開始し、TCPポートを指定します。
[root@iperf-server ~]# iperf3 -s -i 1 -p 520
------------------------------------------------------------
Server listening on TCP port 520
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
(2)クライアントはiperfクライアントモードを開始し、サーバーに接続します
[root@iperf-client ~]# iperf -c 192.168.0.120 -i 1 -t 60 -p 520
------------------------------------------------------------
Client connecting to 192.168.0.120, TCP port 520
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.121 port 50616 connected with 192.168.0.120 port 520
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec
(3)サーバー側の監視結果
------------------------------------------------------------
Server listening on TCP port 5001 TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.0.120 port 520 connected with 192.168.0.121 port 50616
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec
①間隔は時間間隔を意味します。
②転送は、時間間隔で転送されたデータの量を表します。
③帯域幅は、時間間隔での伝送速度です。
(4)マルチスレッドTCPスループットをテストする
送信方法が指定されていない場合、iPerfクライアントは単一のスレッドのみを使用します。
iperf3 -c 192.168.0.120 -P 30 -t 60
(5)アップストリームおよびダウンストリームの帯域幅テストを実行します(双方向送信)
iperf3 -c 192.168.0.120 -d -t 60
(6)iperf3サービスプロセスを停止します
iperf3サービスプロセスを停止するには、CTRL + zまたはCTRL + cを押します。
エグゼクティブSARは実際に実際の結果として受信したサーバー統計パッケージを終了するコマンド:sar -n DEV 1 320
。
3. UDPスループットをテストする
帯域幅テストでは、限界帯域幅、遅延ジッター、およびパケット損失率を測定できるため、通常はUDPモードを使用します。テストする場合、最初にデータ伝送速度としてリンクの理論上の帯域幅を使用します。たとえば、クライアントからサーバーへのリンクの理論上の帯域幅は100Mbpsです。-b100Mを使用して最初にテストし、次にテスト結果に基づいてください実際の帯域幅、遅延ジッター、パケット損失率)、そして実際の帯域幅をデータ伝送速度として使用してテストすると、遅延ジッターとパケット損失率が初回よりもはるかに優れていることがわかり、テストを数回繰り返すと、安定した結果が得られます実際の帯域幅。
(1)サーバー側で、iperfのサーバーモードを開始し、UDPポートを指定します。
[root@iperf-server ~]# iperf3 -s -i 1 -p 521
------------------------------------------------------------
Server listening on port 521
------------------------------------------------------------
(2)クライアントはiperfクライアントモードを開始し、サーバーに接続します
[root@iperf-client ~]# iperf3 -u -c 192.168.0.120 -b 100m -t 60 -p 521
------------------------------------------------------------
Client connecting to 192.168.0.120, port 521
------------------------------------------------------------
[ 3] local 192.168.0.121 port 50616 connected with 192.168.0.120 port 521
[ ID] Interval Transfer Bandwidth TotalDatagrams
[ 3] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec 82
(3)サーバー側の監視結果
------------------------------------------------------------
Server listening on port 521
------------------------------------------------------------
[ 4] local 192.168.0.120 port 520 connected with 192.168.0.121 port 50616
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.0-10.1 sec 1.27 GBytes 1.08 Gbits/sec 0.007 ms 0/82 (0%)
①ジッタはジッタであり、連続送信における滑らかな平均差です。
②Lostは、失われたパケットの数です。
③Total Datagramsはパケット数です。
(4)マルチスレッドUDPスループットをテストする
送信方法が指定されていない場合、iPerfクライアントは単一のスレッドのみを使用します。
iperf3 -u -c 192.168.1.1 -b 5M -P 30 -t 60
(5)アップストリームおよびダウンストリームの帯域幅テストを実行します(双方向送信)
iperf3 -u -c 192.168.1.1 -b 100M -d -t 60
V. Jperfの概要
1. Jperfの概要
jperfは、iperfに基づいて開発されたグラフィカルインターフェイスプログラムであり、複雑なコマンドラインパラメーターの構築を簡素化し、テスト結果を保存しながら、結果をリアルタイムでグラフィカルに表示できます。JPerfは、TCPおよびUDPの帯域幅品質をテストできます。JPerfは、さまざまなパラメーターとUDP特性を使用して、最大TCP帯域幅を測定できます。JPerfは、帯域幅、遅延ジッター、パケット損失を報告できます。
2. JPerf2.0動作環境
(1)オペレーティングシステム:Java実行環境
(2)ネットワーク要件:Jperfは、ローカルイーサネット、インターネットアクセス接続、Wi-Fiネットワークなど、あらゆるIPネットワークで実行できます。
(3)その他の要件:JPerfでは、JPerfサーバーとJPerfクライアントの2つのコンポーネントをインストールする必要があります。
3. JPerf2.0ページの紹介
(1)Iperfコマンドライン(直接入力できません)
①サーバー設定
❶監視ポート:5001
❷クライアント制限:クライアント制限、指定されたクライアントのみに接続を許可します
❸接続数:許可される接続の最大数、0は無制限
②クライアント設定
サーバーアドレス:10.0.115.82、ポート:5001、同時ストリーム:1
(2)アプリケーション層の設定
①旧バージョンとの互換性(サーバーとクライアントのバージョンが異なる場合に使用)
②テストモードを設定します:送信バイトの合計サイズは15バイト、または送信時間の合計長は15秒です。
③同時双方向伝送試験
④双方向伝送試験を別途実施し、最初にcからsまでの帯域を測定する
transferred転送するファイルを指定
t tcpの最大mtu値を表示する
(3)トランスポート層の設定
①TCPプロトコル
theバッファサイズを設定する
TCP TCPウィンドウサイズを指定する
TCP TCPパケットの最大MTU値を設定する
TCP遅延なくTCPを設定する
②UDPプロトコル
UDP UDPの最大帯域幅を設定する
UDP UDPバッファを設定する
❸UDPパケットのカプセル化サイズ:デフォルト1470バイト
③IPレイヤー設定
t ttl値を指定する
❷タイプオブサービス(ToS)、サイズの範囲は0x10(最小遅延)から0x2(最小コスト)
この記事のダウンロードリンク
付録:リファレンス
1.「ネットワークパフォーマンステスト方法」
著者:アリ雲のヘルプドキュメント
アドレス:https : //help.aliyun.com/knowledge_detail/55757.html#HFXbx
2.「iperf-Baidu百科事典」(記事)
著者:Baiduのウィキペディアのユーザー
アドレス:https : //baike.baidu.com/item/iperf/11067694?fr=aladdin
3.「Linuxネットワークパフォーマンス評価ツールiperf、CHARIOTテストネットワークスループット」(記事)
著者:Konglingbin
アドレス:https : //www.cnblogs.com/klb561/p/9215952.html
4.「LinuxコマンドDaquan -iperfコマンド」
著者:不確実
アドレス:https : //man.linuxde.net/iperf
5.「ネットワークパフォーマンステストツールiPerfの機能と使用方法のチュートリアル」
著者:不確実
住所:http : //www.veryhuo.com/a/view/159685.html
6.「IPerf Graphic Tool Jperf Graphic Use Tutorial」
著者:不確実
住所:http : //www.veryhuo.com/a/view/159704.html
7.「ネットワークスループットテストのためのiPerfの使用」
著者:ファンをしてみましょう