ブログ

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

at_ito
2014年8月10日 15時34分

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

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

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

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

ArmadilloにNPtcpを追加

標準のユーザーランドイメージにはNPtcpコマンドが入っていません。そのため、Atmark Distのユーザーランドコンフィギュレーションを変更して、NPtcpを含んだユーザーランドイメージを作成します。

以下のユーザーランドコンフィギュレーションを有効にして、ユーザーランドイメージを作成してください。

Userland Configuration
  Network Applications  ---> 
    [*] NPtcp    ← 有効化

上記コンフィギュレーションを変更した後に作成したユーザーランドを、 Armadilloに書き込んでください。

作業用PCにNPtcpを追加

Windowsを使用している場合は、以下のURLからNPtcpをダウンロードできます。

  • http://na-inet.jp/na/netpipe/ (Windowsが32bitの場合)
  • http://sourceforge.net/projects/netpipe/files/ (Windowsが64bitの場合)

Linuxを使用している場合は、各ディストリビューションに従ってパッケージ等をインストールしてください。 Debian GNU/Linux 7.0(コードネームwheezy)をお使いの場合は、以下のコマンドでインストールできます。

[atde ~]$ sudo apt-get install netpipe-tcp

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

作業用PCでNPtcpを実行してください。以下のようなメッセージが表示されます。

Send and receive buffers are 65536 and 65536 bytes
(A bug in Linux doubles the requested buffer sizes)

Armadilloで、以下のように作業用PCのIPアドレスを指定してNPtcpコマンドを実行してください。

[armadillo ~]# ./NPtcp -h <作業用PCのIPアドレス>

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

  0:       1 bytes     19 times -->      0.00 Mbps in    2051.74 usec
  1:       2 bytes     48 times -->      0.02 Mbps in     861.31 usec
  2:       3 bytes    116 times -->      0.00 Mbps in   17015.96 usec
  3:       4 bytes      3 times -->      0.01 Mbps in    5827.17 usec
  4:       6 bytes     12 times -->      0.01 Mbps in    4398.79 usec
  5:       8 bytes     11 times -->      0.05 Mbps in    1142.45 usec
  6:      12 bytes     54 times -->      0.11 Mbps in     857.58 usec
:
:
:
101:  786432 bytes      3 times -->     17.41 Mbps in  344540.50 usec
102:  786435 bytes      3 times -->     18.98 Mbps in  316158.67 usec
103: 1048573 bytes      3 times -->     18.47 Mbps in  433080.83 usec
104: 1048576 bytes      3 times -->     19.26 Mbps in  415466.67 usec
105: 1048579 bytes      3 times -->     17.98 Mbps in  444940.17 usec

注意事項

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

参考情報

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