ネットワークベンチマーキング (netperf)
netperf を使ってネットワークの二点間での通信速度を測定してみる. トラブル時の問題切り分けや実験などで使える. ちなみに,netperf は windows, *nix の両方で動くが,windows版は古いもの (2.1p1) しか 配布されていない.
サーバ側で準備
netperf は C/S アーキテクチャのツールであり,
測定に使う片方の端点でサーバプロセス netserver
を動作させておく必要がある.
hostA ~# netserver
クライアントの実行
もう一方の端点で netperf
クライアントを実行し,
netserver
サーバ間との通信を測定する.
hostB ~# netperf -H hostA -C -c
TCP STREAM TEST to hostA
Recv Send Send Utilization Service Demand
Socket Socket Message Elapsed Send Recv Send Recv
Size Size Size Time Throughput local remote local remote
bytes bytes bytes secs. 10^6bits/s % T % T us/KB us/KB
87380 16384 16384 10.01 22.09 0.80 17.06 2.965 63.272
オプション "-C"
でローカルの, "-c"
でリモートの CPU 使用率が出る ("Utilization" のカラム).
"-t" <testname>
でテストの内容を指定することもできる.
デフォルトは TCP_STREAM
だが,伝送損失に注目したい場合は UDP_STREAM
の
ほうが純粋な値が出やすいかもしれない.
参考
ttcp は netperf と似たような機能を持つソフトウェアであるが, 一般的に netperf よりも精度が低いと言われている. このソフトも,windows, *nix の両方で提供されている.