TOP比較データ> マイクロベンチマークによる評価
OSS評価手法
オープンソースソフトウェアの性能・信頼性評価手法

第9回:LinuxのI/O信頼性・性能評価
著者:NTTデータ  高田 哲生   2005/7/11
1   2  3  4  次のページ
マイクロベンチマークによる評価

   オープンソースソフトウェア(以下、OSS)のサーバへの適用拡大によって、DBMSのような高信頼性を必要とするシステムにOSSが適用されるようになってきた。OSSを含め、ソフト、ハードの選択肢が増えたことにより、それらを選択するための基準となる信頼性・性能評価の必要性が高まっている。

   この信頼性・性能評価の手法として、これまでの連載で紹介されたDBTのようなフルスペックのテストスイートに加えて、マイクロベンチマークという小規模なベンチマークを用いる手法がある。本記事では、OSの性能・信頼性評価について、このマイクロベンチマークを用いたアプローチを紹介する。

   まず、マイクロベンチマークの特性を理解するため、DBMSベンチマークと比較する。DBMSベンチマークとマイクロベンチマークの処理を階層構造で表したものを図1に示す。左側がDBMSベンチマークの処理を、右側がマイクロベンチマークの処理を表している。

DBMSベンチマークとマイクロベンチマーク
図1:DBMSベンチマークとマイクロベンチマーク

   DBMSベンチマークは、PostgreSQLのようなDBMS層に、特定のビジネスモデルをエミュレートした負荷をかける。このビジネスモデルには、負荷のかけ方に応じていくつかの種類があり、ユーザは目的とする適用分野に近いビジネスモデルのベンチマークを選択できる。そうすることで、実際に使用した場合にどの程度のパフォーマンスが出るのかがわかりやすいという特徴がある。

   DBMSベンチマークの問題点としては、環境構築の煩雑さと、DBMSが多くの機能要素が集まったシステムであるがゆえに細かい要素評価が難しいことの2点が挙げられる。

   環境構築が煩雑なのは、DBMSベンチマークが意味あるものとするために、DBMS、OS、ハードウェアを準備するだけでなく、ベンチマークのルールに従った設定やデータ生成などが必要になるためである。評価したいDBMSやOS、ハードウェアが増えれば増えるほど、これはより大きな負担となる。

   細かい要素評価が難しいのも、DBMSベンチマークが、逆説的だがDBMSを必要とすることが原因である。DBMSベンチマークが発生するクライアント層の負荷がどのようにOS、ハードウェア層へ伝わるかは容易には予測できない。そのため、DBサーバにおけるOS、ハードウェアレベルでのボトルネックの発見のような細かい要素評価には、DBMSベンチマークは不向きである。

   これらの問題を回避する手法として、旧来の商用OSでもマイクロベンチマークを用いたアプローチが行われてきた。マイクロベンチマークとは、DBMSベンチマークのような大きなベンチマークの一部処理をエミュレートすることにより、評価対象を絞ったベンチマークである。

   マイクロベンチマークは、比較的簡単に実行することができ、構造も単純である。また、評価範囲を絞ってあり構造が単純なので、ボトルネック要因の検出もしやすい。

   本検証では、DBMSが発生するストレージに対するI/Oを評価対象として選択した。ストレージに対するI/Oは、一般にDBMS性能に大きく影響する因子であると言われており、OSとストレージの選択はシステム構築の際に重要な検討項目となる。本検証では、そのI/Oの中でも書き込みに注目した測定を行い、DBMSベンチマークを使用した測定結果と比較した。


今回対象とする書き込み方式

   Linuxには同期書き込みと非同期書き込みの2種類がある。

   一般によく使われている非同期書き込みは、データの変更をカーネル管理下のキャッシュに反映するだけで、ストレージに記録されるのを待たない書き込み方式である。そのため比較的高速だが、データがストレージに記録されたことは保証されない。PostgreSQLでは、通常データの記録は基本的に非同期書き込みを使用している。

   同期書き込みは、データがストレージに書き込まれるまで制御が戻らない書き込みである。そのため比較的低速だが、データがストレージに記録されたことが保証されるので、重要な書き込みの際に使用されることが多い。PostgreSQLではトランザクションログ(Write Ahead Logging:WAL)の記録などに同期書き込みを使用している。

   本検証では、同期書き込みを対象としている。その理由は2つあり、ひとつはPostgreSQLにとってWALの記録が重要であり、WALの記録に使用される同期書き込みの信頼性検証の必要性が高いと考えたためである。もうひとつは、同期書き込みにかかる時間は非同期書き込みよりも長く、I/Oの際にボトルネックになりやすいためである。

   本ページの内容と、PostgreSQLのWALの動作についての詳細は「OS層の評価」報告書(以下、報告書)の第2章付録「DBMSとマイクロベンチマーク」に記載されている。また、PostgreSQL自体の動作については日本PostgreSQLユーザ会の「PostgreSQL日本語ドキュメント」が詳しいので、適宜参照されたい。

「OS層の評価」報告書 第2章付録「DBMSとマイクロベンチマークについて」
http://www.ipa.go.jp/software/open/forum/Contents/DevInfraWG/diskio-appendix.pdf

日本PostgreSQLユーザ会「PostgreSQL日本語ドキュメント」
http://www.postgresql.jp/document/
1   2  3  4  次のページ

資料紹介
「OSSの性能・信頼性評価/障害解析ツール開発」報告書

本記事は、OSS推進フォーラム 開発基盤ワーキンググループによって公開されている「OSSの性能・信頼性評価/障害解析ツール開発」報告書を基に記事を掲載しています。報告書には、本記事で紹介した評価手法の詳細な手順、評価結果、考察が記載されています。
Javaアプリケーション層の評価、DB層の評価、OS層の評価の各報告書や付録、障害解析ツール開発に関する各報告書などが、OSS推進フォーラム 開発基盤ワーキンググループのホームページにて公開されています。

■「OS層の評価」報告書(PDF形式/529KB)
http://www.ipa.go.jp/software/open/forum/Contents/DevInfraWG/osbench.pdf

■日本OSS推進フォーラム・開発基盤ワーキンググループホームページ
http://www.ipa.go.jp/software/open/forum/DevInfraWG.html
株式会社NTTデータ 高田 哲生
著者プロフィール
株式会社NTTデータ  高田 哲生
2004年に(株)NTTデータに入社し、Linuxカーネルを専門とする部隊に配属される。その後、OSDL Project Doubtのメンテナとなり、I/O信頼性評価ツール「diskio-2.0」を開発する。現在は、diskioの拡張に加え、Linuxクラッシュダンプ機能「ミニカーネルダンプ」を用いたカーネルの故障解析を担当し、Linuxの信頼性向上に取り組んでいる。


INDEX
第9回:LinuxのI/O信頼性・性能評価
マイクロベンチマークによる評価
  diskioのマイクロベンチマークとしての利用
  評価結果
  diskio利用の応用