LMbench で転送速度を把握する。

ネットワークのベンチマーク・ツールを試す - nepim、LMbench、nuttcp

を参考にLMbenchを使って通信速度のベンチマークを確認してみました。

上の記事では nepim の SUSE 版があるようなのですが、パッケージの依存関係でうまくインストールできなかったので、LMbench3 を使ってみました。


1) 上のサイトからダウンロードしたソースを解凍します。

sles11:~/lmbench # ls
lmbench3.tar.gz

sles11:~/lmbench # tar xvf lmbench3.tar.gz

|
| 略
|

MakeFile があります。

sles11:~/lmbench # cd lmbench3/
sles11:~/lmbench/lmbench3 # ls
ACKNOWLEDGEMENTS COPYING Makefile hbench-REBUTTAL scripts
CHANGES COPYING-2 README doc results src

2) make します。

sles11:~/lmbench/lmbench3 # make


|
| 略
|

3) Binary (bin)が出来上がります。

sles11:~/lmbench/lmbench3 # ls
ACKNOWLEDGEMENTS COPYING Makefile bin hbench-REBUTTAL scripts
CHANGES COPYING-2 README doc results src

4) bin/x86_64-linux-gnu にバイナリが作られます。

sles11:~/lmbench/lmbench3 # ls bin
x86_64-linux-gnu

sles11:~/lmbench/lmbench3 # ls bin/x86_64-linux-gnu/
bw_file_rd lat_connect lat_proc lib_mem.o loop_o
bw_mem lat_ctx lat_rpc lib_sched.o memsize
bw_mmap_rd lat_fcntl lat_select lib_stats.o mhz
bw_pipe lat_fifo lat_sem lib_tcp.o msleep
bw_tcp lat_fs lat_sig lib_timing.o par_mem
bw_unix lat_http lat_syscall lib_udp.o par_ops
disk lat_mem_rd lat_tcp lib_unix.o stream
enough lat_mmap lat_udp line timing_o
flushdisk lat_ops lat_unix lmbench.a tlb
getopt.o lat_pagefault lat_unix_connect lmdd
hello lat_pipe lib_debug.o lmhttp

ここにさまざまな測定ツールが出来上がります。

LMbench のマニュアルによると、この中で lat_xxx 系のプログラムはレイテンシを計るためにあるようです。 bw_tcp が単純に TCP のソケット通信の性能を測るようです。

5) bw_tcp -s (サーバモード)で起動します。

sles11:~/lmbench/lmbench3 # bin/x86_64-linux-gnu/bw_tcp -s

6) 自分自身を計ってみます。

sles11:~/lmbench/lmbench3 # bin/x86_64-linux-gnu/bw_tcp localhost
0.065536 1864.99 MB/sec

1.8GB/s ですね。

7) bw_tcp -s (サーバモード)で起動している他のサーバに対してテストしてみました。

sles11:~/lmbench/lmbench3 # bin/x86_64-linux-gnu/bw_tcp 192.168.1.xxx
0.065536 62.25 MB/sec

ケーブルが原因なのでしょうか。 62MB/s です。

数値は bps(bit per second)ではなく、大文字 MB/S なので Byte Per Sec という解釈でいいんですよね。 そうなると 62MB * 8bit = 496 bps ということになります。 1G bps HUB のほぼ半分の帯域を使っていることになります。

8) 常駐していない相手(ルータなど)には拒否されます。
sles11:~/lmbench/lmbench3 # bin/x86_64-linux-gnu/bw_tcp 192.168.1.1yyy
socket connection: Connection refused


9) 内部で動く XEN 仮想マシン(VM)に対して実行してみます。
sles11:~/lmbench/lmbench3 # bin/x86_64-linux-gnu/bw_tcp 192.168.1.zzz
0.065536 1103.10 MB/sec


ほぼ1.1GB/s 出ています。 8.8G bps ということです。

LMbench は相手が必要です。例えばサーバと HUB間のベンチマークを計りたいというニーズには合いません。ソースから簡単にコンパイルして使えるので、Linux <---> Linux/Unix 間の通信速度を確認するにはお手軽です。

初期値を計測しておき、「遅い」というクレームが来たときに、ボトルネックが発生しているのか初期値と数値を比べてみれば、ネットワークが劣化しているのかどうなのかの判断材料になります。

islandcenter.jp
by islandcenter | 2012-04-27 13:10 | SUSE | Comments(0)