性能はチューン次第、進む情報の公開と共有

「すでにOSSミドルウェアの性能十分」、IPAが評価終了

2007/02/07

 データベースやアプリケーションサーバといったOSSミドルウェア適用における課題は、もはや性能ではない――。

 独立行政法人情報処理推進機構(IPA)の委託で、大手SIベンダやハードウェアベンダなど9社が中心となって2004年から実施している「OSS(オープンソースソフトウェア)性能・信頼性評価プロジェクト」の第4回目の成果が発表された。PostgreSQLやMySQLといったOSSのデータベースはCPU数のスケーラビリティが格段に向上し、チューニング次第で大幅な高速化や大規模対応が可能という。

3年で状況は一変、もはやOSSミドルウェアは性能面は十分

ipa01.jpg IPA OSSセンター研究員 鈴木友峰氏

 プロジェクトが活動成果を発表するのは今回で4回目。OSSの性能限界を明らかにし、適用可能領域を明確にするのが目標の1つだ。OSのLinuxは、カーネル2.4系にあったロック競合の問題はカーネル2.6系で解消され、スケーラビリティに問題はないという判断から、主にデータベースやアプリケーションサーバの性能評価が行われた。

 3年前のプロジェクトスタート当時と現在とでは、状況は一変した。プロジェクトに参加したIPA OSSセンター研究員 鈴木友峰氏は「OSSミドルウェアの適用における課題は、もはや性能ではなく、信頼性や運用に関する要件を考慮した具体的な案件ベースの対応になってきている」と総括。当初は「OSSはどこまで使えるか」という観点から評価を行っていたのが、次第にボトルネックの解析やチューニングノウハウの蓄積を行うことで「どこまで性能が伸びるか」や「どうしたら高速化できるか」、「どこまで速くなるか、徹底してやってみる」とスタンスが変化してきているという。鈴木氏によれば、解析した結果をワールドワイドの開発コミュニティにフィードバックすることで、評価対象のソフトウェアの改善といったことにも貢献するまでになったという。

16CPUまでスケール可能になったPostgreSQL8.2

 鈴木氏は、プロジェクトメンバーの間ではOSSミドルウェアの性能は十分とのコンセンサスができつつあるという。

 これまで小中規模の利用に限られ、大規模なシステムではスケールしないといわれてきたOSSのデータベースだが、大規模システムに対応できるスケーラビリティを備えつつある。

 例えばPostgreSQL8.1は、CPU数が増えた場合にロック競合によりボトルネックが発生していた。原因は、PostgreSQLのバッファプールでアクセスするブロックにかかわらず同一ロック機構を用いていたためで、プロジェクトチームでは、ブロックごとにロックリソースを分割するパッチを作成。このパッチを適用することで、それまで8CPU以上で性能が伸びなかったものが、16CPUまで、ほぼリニアに性能が向上するようになったという。

 パッチを適用したPostgreSQL8.1では、Intel XeonMP(2.8GHz)× 16、メモリ16GBのシステムで1秒に1000トランザクションの処理が可能で、これは「1ユーザーが7.2秒に1回クリックする」という一般的なWebシステムを想定した場合、同時アクセス7200ユーザーという、かなり規模の大きなWebサイトでも使えるレベル。同様にデュアルコアのIntel Xeon(3.0GHz)× 2、メモリ4GBの場合でも、チューニングにより900トランザクション、同時アクセス6500ユーザー程度まで性能が出たという。

ipa02.jpg PostgreSQLの性能評価のグラフ(クリックで拡大)。左のグラフでは高負荷時の16CPUのパフォーマンスが、4CPUと同等程度まで落ちているが、右のパッチを適用したPostgreSQLでは16CPUの性能が7000、8000ユーザー程度まで伸びている

 3年前の数字と比べると、この改善は劇的だ。

 2004年度にIntel Xeon(2.4GHz)×2、メモリ4GBで行ったPostgreSQL7.4の性能評価では、チューニングした状態でも同時アクセス数1000ユーザー程度で性能が飽和していたという。

チューニングが必須、得られた知見はオープンに公開

 データベースのサイズが大規模になった場合にも、チューニング次第でOSSが使えることが分かった。これまで使われてきた性能評価用ベンチマークでは、データベースのテーブルサイズが6.5GB(1万件相当)と小さく、最近のサーバではオンメモリで処理できるレベルとなっている。そこでプロジェクトチームでは100GB(100万件)に拡張してテストを実施。チューニング前には1秒間に2、3トランザクションの処理能力と実用にほど遠いレベルだったのが、ボトルネックを特定し、ソースコードレベルでチューニングすることで1秒間に約80トランザクションの処理能力となったという。「チューニングで性能は大幅に上がる」(鈴木氏)といい、実際の運用ではボトルネックの検出とソフトウェアごとの特性に応じたチューニングが有効だと説明した。

 このほかにも、プロジェクトの成果としてPostgreSQL向けクラスタリングソフトウェアのSlony-I、pgpoolの性能特性の評価やJBoss4.0/Tomcat5.5のクラスタ性能評価なども公開された。IPAでは、今回得られた130件あまりの情報を、同機構が運営する「OSS iPedia」に追加し、公開した。これまでのプロジェクトの成果は、iPediaに約430件蓄積されており、「2006年5月のスタート以来、休日を除いた稼働日で計算すると1日に約1万ヒットのコンスタントなアクセスがある」(IPA理事 仲田雄作氏)という。

ipa03.jpg OSS性能・信頼性評価プロジェクトで得られた成果を公開するiPedia(http://ossipedia.ipa.go.jp/

今後はボランティアベースで継続

 予定された3年のプロジェクト実施期間を終えた今、鈴木氏は「参加ベンダは競合同士、2004年にプロジェクトを発足した当初は“競争”と“協調”の間で、どこまで情報を開示して共有したらいいかという戸惑いがあった」とプロジェクト発足当初の様子を振り返る。最近は参加者にそうした戸惑いはなく、運用上の苦労はなくなったという。

 IPAの委託事業として始まったプロジェクトだが、今後はボランティアベースで継続する。企業や組織の枠を超えた知見の共有や問題解決といったオープンソースらしい協調の仕方は、日本の大手ベンダの間で確実に浸透しつつあるようだ。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)