図1●スループットの向上 赤が旧版であるJBoss4.0.2,青が最新バージョンJBoss4.0.3sp1とJBossCache1.2.4,JGroups2.2.9RC1によるベンチマーク結果。ともにサーバー間のデータ複製を同期で行う設定
図1●スループットの向上 赤が旧版であるJBoss4.0.2,青が最新バージョンJBoss4.0.3sp1とJBossCache1.2.4,JGroups2.2.9RC1によるベンチマーク結果。ともにサーバー間のデータ複製を同期で行う設定
[画像のクリックで拡大表示]
図2●ベンチマークのシステム構成(<a href="http://www.ipa.go.jp/software/open/forum/development/download/051115/web.pdf">「Javaアプリケーション層の評価」報告書</a>図 1.4-1 チェックリスト項目図)
図2●ベンチマークのシステム構成(<a href="http://www.ipa.go.jp/software/open/forum/development/download/051115/web.pdf">「Javaアプリケーション層の評価」報告書</a>図 1.4-1 チェックリスト項目図)
[画像のクリックで拡大表示]

 日本OSS推進フォーラム 開発基盤ワーキンググループは12月22日,オープンソースのJavaアプリケーション・サーバーJBossのベンチマーク結果を公開した。同ワーキンググループが11月に公開したベンチマーク結果に比べ3倍以上の著しい性能向上が見られた。

 11月に公開した報告書では,その時点で最新版であるJBoss 4.0.2を用いたベンチマークで,クラスタリング構成の際に高負荷時にJBossのセッション同期機構を使用すると性能が得られないなどの問題が指摘されていた。

 JBoss開発コミュニティおよびその主要開発者が設立した企業である米JBossは,この指摘を重視。新しいバージョンでは指摘された問題に対する改善を行った。11月末にはJBossの技術者であるBen Wang氏が来日し,日本OSS推進フォーラムと共同で再ベンチマークを実施した。その結果,サーバー間でデータを同期複製する場合,最新バージョンJBoss4.0.3sp1にJBossCache1.2.4,JGroups2.2.9RC1を組み合わせた構成で,250クライアント時のスループットで3.15倍と大幅に向上したベンチマーク結果が得られた。

 この,JBoss4.0.3sp1での最新ベンチマーク結果は,Tomcatでクラスタリングを行った際の性能とほぼ同じ。ただしTomcatのクラスタリング方式では,複数のサーバー間でデータを複製する際,障害が発生するタイミングによっては,あるサーバーにはデータが複製されたが,あるサーバーにはデータが複製されていないといった,サーバー間でのデータ不整合が発生する可能性がある。JBossの場合,データがすべてのサーバーに複製される前に障害が発生すると,更新がキャンセルされ不整合が発生しないといったメリットがある。

 また,日本OSS推進フォーラムは3ノード以上のクラスタ構成で,障害が発生した場合にフェイルオーバー先のノードへの経路の切り替えが正しく行われないという問題を発見し,パッチを作成している。このパッチはJBoss4.0.3 FinalでJBoss本体に取り込まれた。

 さらに日本OSS推進フォーラムではJBossクラスタの運用中に1ノードが障害停止するとクラスタ全体の性能が低下し処理を続行できなくなる問題も確認している。この問題については「共同ベンチマーク中に再現試験を行い,バグの詳細を調査,解決の糸口をつかんだ」(日本OSS推進フォーラム)。修正内容は今後リリースされるJBoss 4.0.3SP2で適用される予定という。

 JBossの検証は,独立行政法人 情報処理推進機構(IPA)と日本OSS推進フォーラムが協力し2005 年度上期OSS 活用基盤整備事業「OSS性能・信頼性評価/障害解析ツール開発」として実施していたもの(関連記事)。日立製作所,NTTデータなど11社が共同で行った。

◎関連資料
「Javaアプリケーション層 JBossクラスタ再ベンチマーク」報告書(PDF)
2005 年度上期OSS 活用基盤整備事業「OSS 性能・信頼性評価/障害解析ツールの開発」「Javaアプリケーション層の評価」報告書(PDF)
日本OSS推進フォーラム 開発基盤ワーキンググループ