2015年4月25日土曜日

ettcp を使って簡易ネットワークスループット測定 ( Linux )

Linux で、簡易的にネットワークのスループットを測定する方法。
ettcp を使います。

1. ettcp のソースコードをダウンロード

ettcp (enhanced ttcp) からダウンロード。

2. ビルドしてインストール

$ tar zxvf ettcp-1.0.tar.gz 
$ cd ettcp-1.0/
$ make

# make install

3. 計測

Ether フレームサイズ 1518 バイトの UDP パケットを 10000 個送信して測定する場合の例。
192.168.10.10 から 192.168.10.20 にパケットを送信しています。
UDP のデータサイズ 1472 バイトを小さくしていくと、スループットは落ちていきます。
この例だと、11 MBps (11x8 = 88 Mbit/sec) ってことになります。

送信側

$ ettcp -t -u -l 1472 -s 192.168.10.20 -n 10000 -f m

ttcp-t: buflen=1472, nbuf=10000, align=16384/0, port=5001  udp  -> 192.168.10.20
nttcp-t: socket
nttcp-t: 14720000 bytes in 1.60 real seconds = 70.01 Mbit/sec +++
nttcp-t: 10006 I/O calls, msec/call = 0.16, calls/sec = 6237.51
nttcp-t: 0.0user 1.0sys 0:01real 66% 0i+0d 236maxrss 0+2pf 0+11827csw

受信側

$ ettcp -r -u -s -f m

ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  udp
nttcp-r: socket
nttcp-r: 14703808 bytes in 1.60 real seconds = 69.92 Mbit/sec +++
nttcp-r: 9991 I/O calls, msec/call = 0.16, calls/sec = 6227.42
nttcp-r: 0.0user 1.5sys 0:01real 97% 0i+0d 234maxrss 0+0pf 104+14csw

■ 計測例追記

Ether フレームサイズ 1518 バイトの UDP パケットを 10 秒間送信して測定する場合の例。

送信側

$ ettcp -t -u -l 1472 -s -i 10 192.168.10.20 -f m

受信側は上の例と同じ。

● ettcp, スループット, 測定, 計測, 簡易, UDP, throughput, rate, packet, frame, ether