|
|
オープンソースソフトウェアの性能・信頼性評価手法
|
第9回:LinuxのI/O信頼性・性能評価
著者:NTTデータ 高田 哲生 2005/7/11
|
|
|
前のページ 1 2 3 4
|
|
diskio利用の応用
|
diskioは発展途上のツールである。出力形式も、各書き込みにかかった時間をCPU tick数で表示するだけなので、分析の際はそれをμsec単位などに直す必要がある。しかし、その分ツール自体はコンパクトにまとまっており、応用範囲も広い。解釈の仕方次第で様々な利用価値が出てくるのがdiskioの面白いところである。
最後にdiskioで得られた、報告書に記述していない興味深い結果を紹介する。図5として、fsync時のdiskioの結果をグラフ化したものを示す。
図5:環境Aにおけるfsyncの測定結果
図5において、c軸は書き込み回数、t軸は各書き込みにかかった時間(μsec)を表す。折れ線は各書き込み方式での測定結果を表している。また、赤い線はHDDの回転にかかる時間を示しており、各書き込みを始めた位置を基準にして下から、1回転、2回転、3回転するのにかかる時間となる。
このfsyncの挙動で特徴的なのは、HDDが2回転する時間と3回転する時間の2つに近い値を取り、その2つの値の間を何回かの書き込みごとに往復している点である。このことから、diskioによる同期書き込みの結果はHDDの回転に大きく関係していると考えられる。
ここで、軸をdiskioの実行時間で取ることを考える。diskioは書き込み間の時間がなるべく短くなるようにデザインされている。そのため、書き込み間隔は非常に小さく、無視できる範囲である。よって、書き込み時間の和を取ると最初の書き込みを開始してからの時間が得られる。
HDDは一定の速度で回転している。最初の書き込みを開始してからの時間をHDDの回転速度で割れば、最初の書き込みを始めた角度を0度として、その時どの角度で書き込みをしていたかがわかる。
図6:環境A fsyncにおけるHDD回転角度と書き込み時間
図6に環境AのfsyncについてのHDDの回転角度と書き込み時間の関係を示す。θ軸が1度目の書き込みを行った角度を0度としたときの角度(度)、t軸がHDDの回転数で表した書き込み時間(回転)を表す。図6より、ほぼ190度から250度の範囲で書き込みが行われていない角度があることがわかる。
この空隙が何に起因して発生しているのか、ファイルシステムの特徴なのか、ファイルシステムの実装上の問題なのかは、今回の実験からは判明しなかった。現在のところ、この領域はHDDの代替セクターではないかと推測している。
|
今後のdiskioの利用
|
diskioによる評価の今後の課題としては、kernel 2.6ベースのディストリビューションでの検証や、ext3以外のファイルシステムでの検証が挙げられる。diskioは基本的にカーネル、ファイルシステムに依存しないため、検証は容易である。最近はkernel 2.6ベースのディストリビューションも増えてきており、ファイルシステムもReiserFS、xfs、jfsなど選択肢は多い。これらの組み合わせによる検証の必要性は高い。
また、今回の検証環境は両環境ともにSCSI HDDを使用している。今回はHDDに関する特徴的な動作が見られたが、他の種類のHDD、ストレージでどうなるかはまだわからない。さらなる検証が必要である。
diskioは今後サポートするシステムコールを増やす予定で、現在はmmapの実装が検討されている。mmapは比較的新しいシステムコールで、PostgreSQLなどの主要なDBMSではまだ採用されていない。このように新しいシステムコールが採用され、検証が行われることで、アプリケーション開発者も新しいシステムコールを導入しやすくなるだろう。
マイクロベンチマークでシステムを検証するという試みはI/Oだけに限らない。CPU性能やネットワーク性能など、多方面からのアプローチが考えられる。様々な角度から検証することで、マイクロベンチマークだけでもOS、ハードウェア性能が、要素ごとに多面的に評価できる。
以上でOSSの性能・信頼性評価についての連載は終了になります。長い間読んでいただき、ありがとうございました。
|
前のページ 1 2 3 4
|
|
|
|
著者プロフィール
株式会社NTTデータ 高田 哲生
2004年に(株)NTTデータに入社し、Linuxカーネルを専門とする部隊に配属される。その後、OSDL Project Doubtのメンテナとなり、I/O信頼性評価ツール「diskio-2.0」を開発する。現在は、diskioの拡張に加え、Linuxクラッシュダンプ機能「ミニカーネルダンプ」を用いたカーネルの故障解析を担当し、Linuxの信頼性向上に取り組んでいる。
|
|
|
|