====== bonnie++ ====== ディスクのIO性能を測定する。\\ bonnie++を使用することで、シーケンシャルread/write、ランダムアクセス等の性能測定を一度に行うことができます。 bonnie++はマシンの書き込み、読み込み性能を計測するもので ※ディスク性能という意味では、「-b」を指定しないと正確なディスク性能は取得できないと思う ===== ダウンロード ===== [[http://www.coker.com.au/bonnie++/|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 |連続して測定する場合、実行回数を指定する。| {{tag>ベンチマーク}}