ブログ

iperfを使用して、ネットワークのスループットを測る方法

at_ito
2014年8月18日 3時49分

iperfコマンドを使用して、ネットワークのスループットを測る方法を紹介します。

ここでは、以下の流れで説明します。

  1. iperfをユーザーランドに追加
  2. iperfを使ってスループットを計測する

1. iperfをユーザーランドに追加

Armadilloにiperfを追加

iperfはAtmark Distに含まれていないため、Debianのパッケージから持ってくる必要があります。

Howto : Debianのパッケージに含まれるコンパイル済みのバイナリをArmadilloで動作させる方法 を参考に、iperfコマンドをArmadilloにコピーしてください。

2014年8月18日時点では、以下のURLからパッケージがダウンロードできます。

対応シリーズパッケージのURL
Armadillo-400シリーズ用http://archive.debian.org/debian/pool/main/i/iperf/iperf_2.0.4-1_armel.deb
Armadillo-800シリーズ用http://ftp.jp.debian.org/debian/pool/main/i/iperf/iperf_2.0.5-3_armhf.deb

作業用PCにiperfを追加

以下のURLから、jperfをダウンロードしてください。

http://sourceforge.net/projects/iperf/files/jperf/jperf%202.0.0/

ダウンロードしたファイルを展開し、その中にあるbin/iperf.exeを、 コマンドプロンプトから実行できるディレクトリにコピーしてください。 コマンドプロンプト起動時にプロンプトで表示されるディレクトリ (例. C:\Users\ito)に配置すると便利です。

※: コマンドプロンプトはWindows上で「Windowsキー + R」を押下した後、「cmd」と入力してエンターを押すと表示されます。

2. iperfを使ってスループットを計測する

まずは、作業用PCで以下のように「iperf -s」コマンドを実行しiperfのサーバー側を起動してください。

C:\Users\ito>iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------

次に、Armadilloで以下のように「iperf -c <作業用PCのIPアドレス>」コマンドを実行しiperfのクライアント側を起動してください。

[armadillo ~]$ iperf -c <作業用PCのIPアドレス>

スループットの計測が終了すると、以下のような結果が表示されます。

------------------------------------------------------------
Client connecting to 192.168.11.100, TCP port 5001
TCP window size: 20.2 KByte (default)
------------------------------------------------------------
[  3] local 192.168.11.108 port 36832 connected with 192.168.11.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  87.8 MBytes  73.5 Mbits/sec

上記の実行方法ではTCPを使用してのスループットを測定した形となりますが、iperfでは「-u」オプションを指定して、UDPを使用してのスループット計測を行うこともできます。サーバー側とクライアント側のコマンド実行例は以下の通りです。

  • サーバー側実行例
C:\Users\ito>iperf -s -u
  • クライアント側実行例
[armadillo ~]$ iperf -c <作業用PCのIPアドレス> -u

注意事項

  • コマンド実行後に「connect failed: No route to host」エラーが出る場合には、作業用PCとArmadilloのネットワークが正常に接続されているか、pingコマンド等を使用して確認してください。
  • 作業用PCがWindowsの場合、ファイアウォールが有効になっていると正常に計測できないことがあります。そのため、うまく動作しなかった場合は、ファイアウォールを無効化して試してみてください。

参考情報

  • NPtcp(NetPIPE)でネットワークのスループットを計測する場合はこちらを参照してください