2012年 04月 27日
LMbench で転送速度を把握する。
を参考に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