Bonnie++では各テストが実行される度に、ベンチマーク工程中の具体的にどのテストが行われているのかを示す行が新しく表示される。そして最後にベンチマーク結果がテキストの表とCSV形式のリストとして表示される。以下に示した結果では、メタデータの読み取り結果も表示されるようにするために「-n 256」を指定してメタデータのテストに使用するファイルの数を増加する必要があった。この「-n 256」というパラメータを指定しなかった場合、連続的な作成/読み取り操作とランダム作成/読み取り操作のどちらもがあまりに短時間で終わってしまうため、「+++++」のみが表示されて、結果の数字が得られない。
$ rm -rf /tmp/foo
$ mkdir /tmp/foo
$ /usr/sbin/bonnie++ -d /tmp/foo
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...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.03 ------Sequential Output------ --Sequential Input- --Random-
-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
chunklog 4G 59330 97 269236 64 109173 31 54711 97 290233 38 509.6 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
256 3862 96 342257 98 10759 69 3704 94 339523 98 1771 11
chunklog,4G,59330,97,269236,64,109173,31,54711,97,290233,38,509.6,1,256,3862,96,342257,98,10759,69,3704,94,339523,98,1771,11
大量のIO操作を行うアプリケーションはほとんどの場合、データの読み書きを文字単位で行うことはないので、データ転送の結果としてはブロック単位の読み取り/書き込み/再書き込みについての結果がもっとも重要だろう。%CPの欄は、各テストでIO操作を行なった際のCPU使用率を示している。またメタデータについてのテストの結果は出力結果の2列目にあって、0バイトの大きさのファイルの作成/(stat(2)経由の)読み取り/削除についての結果が表示されている。メタデータの作成/読み取り/削除のテストでは、ファイル名を数値でソートした順の場合と、ランダムな順の場合とでテストが行なわれる。ファイルシステムの中には、アプリケーションが特定の順でファイルの作成/アクセスを行った場合に性能が高いものもあるが、Bonnie++はメタデータについてのテストを2度行うので、ファイル名順にアクセスする場合に最適化されているのかどうかが分かる。
Bonnie++の出力の最後の行は、表形式で出力した結果と同じ内容をCSV形式で出力したものだ。Bonnie++のディストリビューションにはPerlスクリプトのbon_csv2htmlが含まれている。bon_csv2htmlはBonnie++が出力したCSV形式を入力として受け付けて、その内容を表示するHTMLページを生成する。以下に、上記のテスト結果のCSV形式の行をパイプでbon_csv2htmlに渡して生成した表を示す。
| Sequential Output | Sequential Input | Random Seeks | Sequential Create | Random Create | ||||||||||||||||||||||
| Size:Chunk Size | Per Char | Block | Rewrite | Per Char | Block | Num Files | Create | Read | Delete | Create | Read | Delete | ||||||||||||||
| K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | |||
| chunklog | 4G | 59330 | 97 | 269236 | 64 | 109173 | 31 | 54711 | 97 | 290233 | 38 | 509.6 | 1 | 256 | 3862 | 96 | 342257 | 98 | 10759 | 69 | 3704 | 94 | 339523 | 98 | 1771 | 11 |
Bonnie++ベンチマークは、手元のハードウェアから得られるはずの性能を実際に得ることができているのかを知るために非常に役に立つ。また他の人々が同様のハードウェアを使って生成して公開しているBonnie++の結果も探してみれば、とても参考になるだろう。RAIDの構成やファイルシステムの構成を変更する際には、性能が向上すると期待して行う変更によって、実際に顕著に向上するのかどうかを見極めるために非常に参考になるだろう。
明日は、変更によるプラスの影響がどれほどあるのかを一目瞭然にするために、ベンチマーク間での相対的な変化を示すグラフをBonnie++の複数の実行結果から生成する方法を紹介する。
Ben Martinは10年以上もファイルシステムに携わっている。博士号を取得し、libferris、ファイルシステム、検索ソリューションを中心としたコンサルティングサービスを提供している。
