AWSなどサーバー間でネットワーク帯域を手軽に測定する方法


Netperfを使おう!

ネットワークベンチマークソフト。特定のホスト間でTCPやUDPのベンチマークを行う場合に便利。
大学時代は大変お世話になりました。
UDPでの測定は、-mオプションを使うこと!要注意。
UDPでの計測はiperfの方がオススメです。

インストール方法

Amazon Linuxへのインストール

yum install netperf

Macの場合

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install netperf

コマンドライン

基本的な使い方

1.netserverをサーバー側で起動
2.送信側でnetperfコマンドをで測定方法に合わせて起動する

それぞれ以下を参照して下さい。

サーバ

  • netserverを実行する
  $ netserver 

クライアント

    $ netperf -H <server IP addr> 

使用例

TCPでの測定

送信側(クライアント)は以下のコマンドを実行します。

$ netperf -H 192.168.1.32 

UDPでの測定

送信側(クライアント)は以下のコマンドを実行します。

    $ netperf -H 192.168.1.32 -t UDP_STREAM -- -m 1024 

※注意: デフォルトでは9216バイトのUDPパケットが送出されてしまうので、 "-m"オプションで各ネットワークのMTUを指定して下さい。;
デフォルトの使用ポート12865番ですが、変えたい場合のオプションは"-p"となります。

結果の見方

  • TCPでの結果
    TCP STREAM TEST to 172.29.34.138 Recv Send Send Socket Socket Message 
Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 
10^6bits/sec 87380 16384 16384 10.00 94.13
              (1)   (2)   (3)   (4)   (5) 

(1)受信ソケットサイズ(byte)
(2)送信ソケットサイズ(byte)
(3)送信メッセージ(byte)
(4)計測時間
(5)実効帯域
  • UDPでの結果
    UDP UNIDIRECTIONAL SEND TEST to 172.29.34.138 Socket Message 
Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs 
# # 10^6bits/sec 65535 1024 10.00 114702 0 93.97 65535 10.00 114702 93.97 
                                            (a)                      (b) 

(a)送信した帯域
(b)受信できた帯域(実効帯域)
とりあえずUDPでの帯域は(b)を見ればよい