結果の解釈
IOzoneは、結果をstdout(標準出力)に表形式で出力する。明示的に指定した最小サイズのファイル(自動モードのときはデフォルトで64KBになる)からファイルサイズが大きくなる順に結果が報告される。ファイルサイズごとに、指定したレコードサイズの範囲でレコードサイズが大きくなる順にテストが行われる。
IOzoneパッケージには、gnuplotを用いてIOzoneの表形式の出力からグラフを生成するためのスクリプトが用意されている。これらのgnuplotスクリプトは、Generate_Graphsとgengnuplot.shという名前で呼ばれている。Generate_Graphsは、gengnuplot.shを複数回呼び出して、IOzoneのベンチマークのテストごとにグラフを生成し、それらのグラフをgnuplotで描画すると共にPostScript形式の出力を生成する。Generate_Graphsでは、gnuplotの操作のためにgnu3d.demファイルが使われる。このファイルをカスタマイズすれば、各グラフのPNGビットマップイメージを生成したり、グラフが対話的に表示されないようにしたりできる。gnu3d.demを変更して、PNGファイルが非対話的に表示されるようにするには、次のようにすればよい。
set zlabel "Kbytes/sec"
set data style lines
set dgrid3d 80,80,3
#splot 'write/iozone_gen_out.gnuplot' title "Write performance"
set terminal png
set output "write/write.png"
splot 'write/iozone_gen_out.gnuplot' title "Write performance"
#pause -1 "Hit return to continue"
|
| 図1 ハードウェアパリティRAIDの再書き込みのパフォーマンス |
|
| 図2 ハードウェアパリティRAIDの書き込みのパフォーマンス |
図1は、ハードウェアパリティRAIDの再書き込みのパフォーマンスを示している。チャンクサイズは256KBで、RAIDは6台の750GBディスクで構成され、64KBから4GBの範囲のファイルに対してテストを行っており、メインメモリのサイズは2GBである。このベンチマークテストでは、前述の最初のiozoneコマンドを使用している。なお、レコードサイズが256KBを超えない間の方がパフォーマンスが高いことに注意されたい。これはRAIDではチャンクサイズよりも小さな変更に対して、読み取り-変更-書き込みが1サイクルで実行されるためと思われる。グラフの手前部分の落ち込みは、-aオプションにより一定以上小さなレコードと大きなファイルでテストが行われないようになっていることが影響している。
図2は、同じハードウェアおよびファイルシステム構成のときの書き込みパフォーマンスを示している。このベンチマークで特に目立つのは、一定以上大きなレコードに対して平面に少し落ち込みが見られることである。これはファイルサイズに関して約16KB、レコードサイズに関して256KBから4MBの範囲の領域で生じている。これはデータ収集中に異常が生じたか、システムのコンポーネントの中に、このファイルおよびレコードサイズにおいて十分なパフォーマンスを発揮しないものがあることを示唆している。これよりも大きなファイルについては、レコードサイズが小くなるとパフォーマンスが向上する。ただし、システムキャッシュと比較してファイルサイズがある程度以上大きくなると(ファイルサイズ軸の4.19と表記されている付近より右の部分)パフォーマンスが落ち込み、レコードサイズによる変化がそれほど見られなくなる。
まとめ
IOzoneでは、操作の対象となるファイルサイズの範囲と、それらのファイルのテストに使用するレコードサイズの範囲を指定できる。それに加え、テストの入出力を実行するオペレーティングシステムのAPIコールを選択できるため、入出力のパフォーマンスを改善したいと考えているアプリケーションに近いAPIを選択できる。また、読み取り、書き込み、再書き込み、再読み取りなどのパフォーマンス統計を3Dグラフ化することで、システムを全体的に見たときに十分なパフォーマンスが発揮されていない領域を発見することができる。たとえば、RAIDコントローラによっては、レコードサイズが一定の大きさ以下のときに、他のレコードサイズのときよりも高いパフォーマンスを示すことがあり、IOzoneを使用すると、そのパフォーマンスの落ち込みをグラフで確認することができる。
IOzoneでは、Bonnie++のように単に読み取り、書き込み、再書き込みの数値を計測するだけでなく、それ以上の詳細な入出力パフォーマンスの情報を得ることができる。ファイルサイズとレコードサイズ、入出力要求を発行するAPI、その他のさまざまなパラメータを変化させたとき、入出力パフォーマンスがどのように推移するか調べることができる。Bonnie++では、かなり短時間のテストでパフォーマンスのよい標識が得られる。Bonnie++の数値に問題が見られないときIOzoneを実行するとよい。通常、IOzoneで入出力パフォーマンスのより詳細な情報を得るには2時間から4時間ほどかかる。
Ben Martinは、ここ10年以上ファイルシステムに取り組んできた。博士号を取得し、現在はlibferris、各種ファイルシステム、検索ソリューションを中心にコンサルティングサービスを手がけている。
