CentOSでネットワークの帯域を計測する
iperfを使えばネットワークの帯域を計測することができます。
UNIX系ではnetperfが有名かと思いますが、UDPの計測に関してはIperfの方が使いやすいと思います。
WindowsやLinuxなど各種OSで使用できます。
ダウンロード
NLANR/DAST : Iperf - The TCP/UDP Bandwidth Measurement Tool
http://sourceforge.net/projects/iperf
使い方
◆ユニキャストモード
TCPの場合
サーバー
$ iperf -s
クライアント
$ iperf -c <受信側ホスト名> または <受信側IPアドレス>
例1)TCP通信での最大レートを測定する。Netperfでの測定とほぼ同様。
$ iperf -c 192.168.1.100
例2)100MbyteのデータをTCPで送信する場合
$ iperf -c-l 100M
UDPの場合
サーバ
$ iperf -s -u
クライアント
$ iperf -c 192.168.1.100 -u -b <送信帯域> -t <計測時間[sec]> -i <インターバル>
例1)192.168.1.100へ向けUDPで10Mのストリームを60秒間送信する。
レポートの間隔は2秒おき。
$ iperf -c 192.168.1.100 -u -b 10M -t 60 -i 2
例2)192.168.1.100との間でUDPで10Mのストリームを双方向で60秒間送信する。
$ iperf -c 192.168.1.100 -u -b 10M -t 60 -i 2 -d
例3)双方向モードでの測定。192.168.1.100へ向け3本の10MのUDPストリームを60秒間送信する。
$ iperf -c 192.168.1.100 -u -b 10M -t 60 -i 2 -P 3
◆マルチキャストモード
サーバ
$ iperf -s -u -B <マルチキャストアドレス> -i <結果表示インターバル>
ex.) $ iperf -s -u -B 224.0.55.55 -i 1
クライアント
$ iperf -c <マルチキャストアドレス> -u -T-t <計測時間[sec]> -i <インターバル> -b <送信帯域> ex.) $ iperf -c 224.0.55.55 -u -T 32 -t 10 -i 1 -b 1M
IPv6モード
サーバ
$ iperf -s -V
クライアント
$ iperf -c-V
◆結果の見方
サーバー側
node2> iperf -s -u -i 1
Server listening on UDP port 5001 Receiving 1470 byte datagrams
UDP buffer size: 60.0 KByte (default)
[ 4] local
port 5001 connected with port 9726
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.0- 1.0 sec 1.3 MBytes 10.0 Mbits/sec 0.209 ms 1/ 894 (0.11%)
[ 4] 1.0- 2.0 sec 1.3 MBytes 10.0 Mbits/sec 0.221 ms 0/ 892 (0%) ←中間レポート
[ 4] 2.0- 3.0 sec 1.3 MBytes 10.0 Mbits/sec 0.277 ms 0/ 892 (0%)
[ 4] 3.0- 4.0 sec 1.3 MBytes 10.0 Mbits/sec 0.359 ms 0/ 893 (0%)
[ 4] 4.0- 5.0 sec 1.3 MBytes 10.0 Mbits/sec 0.251 ms 0/ 892 (0%)
[ 4] 5.0- 6.0 sec 1.3 MBytes 10.0 Mbits/sec 0.215 ms 0/ 892 (0%)
[ 4] 6.0- 7.0 sec 1.3 MBytes 10.0 Mbits/sec 0.325 ms 0/ 892 (0%)
[ 4] 7.0- 8.0 sec 1.3 MBytes 10.0 Mbits/sec 0.254 ms 0/ 892 (0%)
[ 4] 8.0- 9.0 sec 1.3 MBytes 10.0 Mbits/sec 0.282 ms 0/ 892 (0%)
[ 4] 0.0-10.0 sec 12.5 MBytes 10.0 Mbits/sec 0.243 ms 1/ 8922 (0.011%) ←最終レポート
左から、測定時間,l受信データ量,bps,片方向遅延,パケット損失数/パケット受信数(パケット損失率)
クライアント側
node1> iperf -c node2 -u -b 10m
Client connecting to node2, UDP port 5001 Sending 1470 byte datagrams
UDP buffer size: 60.0 KByte (default)
[ 3] local
port 9726 connected with port 5001
[ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 12.5 MBytes 10.0 Mbits/sec
[ 3] Sent 8922 datagrams
◆オプション
◆GUI
Iperfのフロントエンドでjperfというものもあります。
http://dast.nlanr.net/projects/jperf/
慣れないうちはこれを使うと設定などやりやすいかもしれません。
Windowsで使う場合は、jperfのオーバーヘッドにより高レートではパケットロスが発生することもあるみたいです。