iperf3は、Macが使用しているネットワークのパフォーマンスを測定するためのネットワークスループットツールです。macOSのターミナルアプリでの使い方は以下のとおりです。
iperf は、国立応用ネットワーク研究所 (NLANR) によって最初に開発された UNIX メモリ、ネットワークスループット、および帯域幅ツールです。iPerf は、1983 年頃に米国陸軍弾道研究所で DARPA 向けに最初に作成された、古い Test TCP (ttcp) アプリの完全な互換性を持つ書き換え版です。
Windows および Linux 用の最新バージョンもあります。
iPerf には 3 つの主要なリビジョンがあり、3 番目のリビジョン (iperf3) は以前のバージョンとの下位互換性がありません。iperf3 は 2014 年に最初にリリースされ、他のプログラムで使用できるように開発者ライブラリも含まれています。
以前のバージョンはマルチスレッドでしたが、iperf3はシングルスレッドです。ただし、マルチスレッドはiperf3バージョン3.16で追加されました。
マルチスレッドとは、複数のCPUまたはマルチコアCPUを搭載したコンピュータ上で、複数のコードパスを同時に実行できることを意味します。マルチスレッドは並列処理に使用され、パフォーマンスを向上させます。
iperf3 の書き換えは、パフォーマンス向上を目的として、米国エネルギー省のエネルギー科学ネットワーク(ESnet)とカリフォルニア州バークレーのローレンス・バークレー国立研究所によって実施されました。ESnet は世界中の複数の研究機関と民間の研究所を接続しています。
iperf3 のソースコードは、GitHub の esnet / iperf にあります。
Robert McMahon によって書かれたオリジナルの iperf2 コードベースは Sourceforge にあります。
SourceForge には非常に詳細な Iperf 2 と Iperf 3 の比較表もあります。
目的
iperf3はメモリ間測定ツールですが、ネットワークやルーター、さらにはストレージデバイスのパフォーマンス測定にも広く使用されています。iPerf2とは異なり、バージョン3ではJSON形式での出力も提供されます。
すべての iPerf バリアントでは、テスト用にサーバー コンポーネントとクライアント コンポーネントの両方が必要です。iperf3 は、テストと通信に TCP および UDP (接続なし) プロトコルを使用します。
iperf3 には下位互換性はありませんが、iperf2 と iperf3 のコマンドは非常に似ています。ESnet には iperf2/iperf3 コマンドチャートがあります。
ESnetには、ツール間のオプションの違いをまとめた比較表があります。また、iperf3を使用するためのネットワークと設定を最適化する方法を説明したmacOSチューニングページもあります。
iperf3 の主な用途は、システム間のメモリ パフォーマンス、ネットワーク接続、帯域幅、ディスク パフォーマンス、ネットワーク全体のスループットを測定することです。
macOSへのインストール
iperf3はmacOSにデフォルトで含まれていません。インストールする最も簡単な方法は、HomebrewパッケージマネージャーとHomebrew iperf3フォーミュラを使用することです。
Homebrew を使用して iperf3 をインストールします。
Homebrew を Mac にインストールしたら、起動ディスクの /Applications フォルダにある Apple のターミナル アプリを開き、次のように入力します。
brew install iperf3
キーボードの
Returnキーを押します。
iperf3 の Homebrew 実装は、自動的にインストールされる他のいくつかの Homebrew パッケージに依存しています。
- cfnctl
- コムラック
- ガウト
- ぐー
- hcledit
- ラマラマ
- yices2
これらについては、それぞれのHomebrew Formulaページで読むことができます。ターミナルでiperf3のインストールバージョンを確認するには、次のコマンドを実行します。
iperf3 -v
ターミナルでiperf3を実行する
macOS のターミナルで iperf3 を実行する場合、さまざまなオプションがありますが、最も簡単なコマンドは次のとおりです。
iperf3 -c remotehost
ここで、「remotehost」は接続先のサーバーのIPアドレスまたは名前です。接続先のコンピューター上でiperf3サーバーコンポーネントが実行中であり、リッスン状態になっている必要があります。
この-c
オプションは、iperf3 をクライアントモードで実行し、指定されたサーバーに接続するように指示します。TCP ではなく UDP を使用してリモートコンピュータに接続するには、この-u
オプションを以下のオプションとともに使用します-c
。
iperf3 -c -u remotehost
追加オプション
他にも次のようなオプションが多数あります:
- -p (ポート番号)
- -f (速度ラベル形式)
- -i (秒単位の間隔)
- -B (特定のネットワークインターフェースにバインド)
- -V (詳細出力)
- -J (JSON出力)
- -l (ログファイル出力)
- -d (デバッグモード)
- -h (ヘルプを表示)
独自のiperf3サーバーを実行している場合は、-s
サーバーを起動する際に -D または -D (デーモン) フラグを使用してください。サーバーモードで実行する場合は、--authorized-users-path
許可するユーザーを設定するためのフラグも用意されています。
デフォルトでは、iperf3サーバーはiperf3クライアントからの接続をTCPポート5201で待ち受けます。-p
フラグに続けてスペースを入れ、ポート番号を指定することで、別のポートを指定できます。例:
iperf3 -s -p 5002
このコマンドは、iperf3 をサーバー モードで起動し、UNIX ポート 5002 でクライアントからの受信要求をリッスンします。
プライベートサーバーを作成する場合は、標準ポートではなく代替ポートを使用することをお勧めします。これにより、標準サーバーポートを狙ってマシンへの侵入を試みる悪意のある人物からサーバーを保護することもできます。
ターミナルでの iperf3 の使用法とオプションの完全なリストについては、man (マニュアル) システムを使用してください。
man iperf3
続いてキーボードの
Return キーを押します。
端末出力
iperf3 を実行すると、ターミナルにテスト結果が表示されます。各テスト行には、テスト間隔(秒単位の遅延)、データ量、全体的なスループットが表示されます。テストを停止するには、キーボードの Command + Zまたはq キーを押します。
UDP ( -u
) オプションを使用した場合、テストではパケット損失も表示されます。
ターミナルで iperf3 テストを実行しています。
iperf3 開発ページもあります。
フランスの iperf.fr にも、テスト サーバーのリストなど、多くの有益な情報が掲載されています。
無料の iperf3 テスト サーバーの専用リストは iPerf3 サーバー リストで入手できますが、サイトの負荷が非常に高いためアクセスできない場合があります。
別の便利なネットワーク ツールについては、NetPipe を参照してください。
iperf3 はインストールも使用も簡単です (実行も非常に簡単です)。次にネットワーク全体の帯域幅を素早くテストする必要があるときには、これまで iperf3 なしでどうやってやっていたのか不思議に思うでしょう。