iperf3 はプロフェッショナル向けのネットワーク性能測定ツールで、その中核機能はデータフローを生成することで2つのネットワークノード間の最大利用可能帯域幅を測定することです。
ネットワークの「ストレステスト」や「健康診断」ツールと考えることができます。ネットワークリンクの実際の帯域幅と品質を正確に反映します。
メインの利用シーン
1. 帯域幅測定
典型적인应用场景:1台のコンピュータでiperf3サーバー(サーバーモード)を実行し、もう1台のコンピュータでiperf3クライアントを実行します。クライアントはサーバーへデータを送信し、最終的に両者の間のネットワーク帯域幅を算出します。例えば、パソコンから家庭用ルーターまでの実際の速度や、オフィス内の異なる場所間のネットワーク速度をテストする場合などです。
2. ネットワーク障害のトラブルシューティング
ネットワーク速度が遅いと感じたとき、iperf3を使用して問題がアプリケーション層(例:Webサイトサーバーの応答が遅い)にあるのか、それともネットワーク自体にあるのかを判断できます。iperf3で測定した帯域幅も低い場合、問題はネットワークリンク、スイッチ、またはネットワークカードなどの环节にある可能性が高いです。
3. ネットワーク設定と性能の確認
ネットワーク機器(スイッチ、ルーターなど)のQoS(品質保証)、速度制限ポリシー、またはファイアウォールルールを調整した後にiperf3を使用して、設定が有効になっているか、性能が期待通りに達成されているかを確認します。
4.有線と無線ネットワークの性能比較
同じ場所で、有線接続とWi-Fi接続の両方でテストし、無線ネットワークの損失と安定性の差異を直感的に比較できます。
5. ネットワークの安定性テスト(ジッターとドロップ率)
iperf3はテスト中のジッター(データパケットの遅延の変化)とドロップ率を報告できます。これは、ビデオ会議やオンラインゲームなど、ネットワークの安定性に高い要求を持つアプリケーションにおいて特に重要です。
使用チュートリアル
注意:テストには2台のコンピュータが必要です。1台はサーバーとして、もう1台はクライアントとしてデプロイします。
- ダウンロードと展開
- iperf3をダウンロードして解凍し、ディスクのルートディレクトリに配置することを推奨します。
- このソフトウェアはダブルクリックで直接実行できず、コマンドライン操作が必要です。
- 実行環境の準備
- コマンドプロンプト(cmd)を開き、
cdコマンドを使用して解凍ディレクトリがあるディスクに移動します。例えば、Dドライブに解凍した場合は次のように入力します:
// 示例代码
cd D:/
- ディスクのルートディレクトリに入った後、さらに
cdコマンドを使用してiperf3ディレクトリに入ります。まずiperfと入力してTabキーを押し、自動補完された後にcdを付けて入力できます。
- iperf3の実行
- iperf3ディレクトリに入った後、
iperf3.exeと入力してソフトウェアを実行します。以下のメッセージが表示されれば、実行成功です:
// 示例代码
iperf 3.17 (c2 2023-08-24) Windows 10 These are the basic commands...
- 完全なコマンドリストを表示するには、
iperf3 -hと入力します。
- サーバーの起動
- サーバーで以下のコマンドを実行してサービスを開始します(デフォルトでは5201番ポートをリッスンします):
// 示例代码
iperf3 -s
- 起動に成功すると、以下が表示されます:
// 示例代码
Server listening on 5201
- クライアントからのテスト開始
- クライアントで以下のコマンドを実行し、サーバーに接続してテストします:
// 示例代码
iperf3 -c 服务器IP
- テスト完了後、帯域幅などの結果が表示されます。
- カスタムポート
- デフォルトポートが使用できない場合は、
-pまたは--portパラメータを使用してカスタムポートを指定できます。 - サーバーが5202番ポートをリッスン:
// 示例代码
iperf3 -s -p 5202
- クライアントがサーバーの指定ポートに接続:
// 示例代码
iperf3 -c 192.168.1.10 -p 5202
TCP テストコマンド
- 並列接続(高帯域幅リンクの性能テストに適する):
// 示例代码
iperf3 -c <服务器IP地址> -P 4
- 逆方向テスト(サーバーがデータを送信し、クライアントが受信する。クライアントのパフォーマンスボトルネックを除外するために使用):
// 示例代码
iperf3 -c <服务器IP地址> -R
- テスト時間の指定(デフォルトは10秒、ここでは30秒に変更):
// 示例代码
iperf3 -c <服务器IP地址> -t 30
- 組み合わせ使用(並列4接続、逆方向テスト、30秒継続):
// 示例代码
iperf3 -c <服务器IP地址> -P 4 -R -t 30
UDP テスト
コマンド
UDPテストは帯域幅を自動的に一杯にしません。ターゲット帯域幅を手動で指定する必要があります。特定のトラフィック下でのジッターとドロップ状況のテストに適しています。
- 基本UDPテスト(帯域幅の指定は必須):
// 示例代码
iperf3 -c <服务器IP地址> -u -b 100M
-u:UDPプロトコルの使用を指定。-b 100M:ターゲット帯域幅を100 Mbpsに指定。ネットワーク状況に応じて10M、1Gなどに調整可能。- よく使うUDPパラメータ
- 50 Mbpsトラフィックをテスト:
// 示例代码
iperf3 -c <服务器IP地址> -u -b 50M
- UDPパケット長を指定(デフォルトは1470バイト、ここでは1000バイトに設定):
// 示例代码
iperf3 -c <服务器IP地址> -u -b 100M -l 1000
- UDPの逆方向テスト(サーバーがUDPストリームをクライアントへ送信):
// 示例代码
iperf3 -c <服务器IP地址> -u -b 100M -R
UDP テスト結果の読み方
UDPテスト結果では、帯域幅以外にも以下の点に重点关注する必要があります:
- Jitter(ジッター):値が小さいほど、ネットワークが安定している。
- Lost/Total Datagrams(ドロップ率):ドロップ率が低いほど良い。
結果例:
// 示例代码
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-20.00 sec 119 MBytes 50.0 Mbits/sec 0.123 ms 12/85216 (0.014%)
上記の結果から、50 Mbpsのトラフィック下ではジッターがわずか0.123ミリ秒、ドロップ率が0.014%であり、ネットワーク品質は優れています。
テストシナリオ例
サーバーのIPを 192.168.1.10 と仮定します。
- シナリオ1:社内TCP性能をテスト、4並列接続を使用
// 示例代码
iperf3 -c 192.168.1.10 -P 4
結果の关注点:Bitrate を確認し、ネットワーク機器の极限(例:ギガビットネットワークカードの941 Mbits/sec)に近い場合は正常。
- シナリオ2:ビデオストリームを模擬し、50 Mbps UDPトラフィック下のネットワーク品質をテスト
// 示例代码
iperf3 -c 192.168.1.10 -u -b 50M -t 20
結果の关注点:Jitter と Lost/Total Datagrams を確認し、ネットワークの安定性を評価します。
重要なお知らせ:サーバーはまず iperf3 -s を実行し、その後クライアントで上記の -c から始まるコマンドを実行します。