目次

bonnie++

ディスクのIO性能を測定する。

bonnie++を使用することで、シーケンシャルread/write、ランダムアクセス等の性能測定を一度に行うことができます。

bonnie++はマシンの書き込み、読み込み性能を計測するもので
※ディスク性能という意味では、「-b」を指定しないと正確なディスク性能は取得できないと思う

ダウンロード

http://www.coker.com.au/bonnie++/

インストール

# wget http://www.coker.com.au/bonnie++/bonnie++-1.03e.tgz
# tar zxvf bonnie++-1.03e.tgz
# yum install gcc-c++
# ./configure

bonnie.hの修正

測定した処理時間が短過ぎた場合には、測定結果の表示が「+++++」「+++」となってしまう項目があります。

このため、ソースを少し修正してからmakeしています。

# vi bonnie.h
#define MinTime (0.5)
      ↓
#define MinTime (0.01)

make

# make

実行

Sequential OutputとSequential InputのBlockの所

ブロックレベルでのreadとwriteの値

こんな感じ

Write: 82189(82MB程度)/sec

Read: 98260(98MB程度)/sec

# bonnie++ -d /tmp/ -uroot -s 512 -r 256
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
matsuitest-ubu 512M   651  98 82189  21 26259   6  3614  98 98260  15  3256 139
Latency             20289us     150ms     443ms    4696us   62676us     852ms
Version  1.96       ------Sequential Create------ --------Random Create--------
matsuitest-ubuntu   -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency               895us     849us    1248us     874us     406us    1234us
1.96,1.96,matsuitest-ubuntu,1,1364370686,512M,,651,98,82189,21,26259,6,3614,98,98260,15,3256,139,16,,,,,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,20289us,150ms,443ms,4696us,62676us,852ms,895us,849us,1248us,874us,406us,1234us

見方

○Sequential Output:連続での書込み
 ・Per Chr:キャラクタ単位でのアクセス
 ・Block:ブロック単位でのアクセス
 ・Rewrite:読込み、書込みの繰り返し

○Sequential Input:連続での読込み
 ・Per Chr:キャラクタ単位でのアクセス
 ・Block:ブロック単位でのアクセス

○Random:ランダムアクセス

○Sequential Create:連続でのファイル作成・読込み・削除
 ・Create:ファイル作成
 ・Read:ファイル読込み
 ・Delete:ファイル削除

○Random Create:ランダムでのファイル作成・読込み・削除
 ・Create:ファイル作成
 ・Read:ファイル読込み
 ・Delete:ファイル削除

※ms, usという表示に関して

ms = ミリセコンド 1000分の1秒
us = μs(マイクロセコンド) 100万分の1秒

オプション

オプション 意味
-b write時にバッファキャッシュを使わないよう指定する。
-d 測定対象のディレクトリを指定する。
-q 実行経過を表示しない。
-r メモリサイズを指定する。単位はMB。
-s 測定時に作成する一時ファイルの最大サイズを指定する。単位はMB。
-u 実行ユーザを指定する。通常は一般ユーザで実行、rootユーザで実行する場合は-u rootオプションが必要となる。
-x 連続して測定する場合、実行回数を指定する。