JBossとTomcatのクラスタ性能比較

JBossとTomcatのクラスタ性能比較

クラスタ環境で性能が異なるかを確認するために、第1回と同様JBoss EAPとJBoss AS、Apache Tomcatの3つでスループットを比較しました。

検証環境

JBossの管理モードはスタンドアロンモードとし、haプロファイルを使用します。サーバのスペック、JVMパラメータ、サンプルアプリケーションはシングル構成の性能テスト時と同じです(表6、図4)。

表6:APサーバのスペック

APサーバOSCPUメモリ
Apache Tomcat 7.0.53CentOS 6.5(x64)1vCPU1GB
JBoss EAP 6.2.0CentOS 6.5(x64)1vCPU1GB
JBoss AS 7.1.1CentOS 6.5(x64)1vCPU1GB
クラスタ性能検証環境

図4:クラスタ性能検証環境

クライアント端末、Webサーバが性能のボトルネックにならないよう、それぞれ2台ずつ用意しています。コネクタとしてはmod_jkを利用し、APサーバの台数は1台から4台まで増やして計測しました。

コネクタの設定は、表7のようにしています。

表7:コネクタ設定

項目設定
ロードバランシングセッション数によるラウンドロビン
スティッキーセッション有効

負荷試験は3回実施し、3回の平均を比較します。
セッションレプリケーションによる性能の違いを見るために、APサーバのレプリケーション機能を無効/有効にした場合のスループットを比較しました。

レプリケーション無効の場合のスループット比較

スループット(レプリケーション無効)

図5:スループット(レプリケーション無効)

スループット増加量(レプリケーション無効)

図6:スループット増加量(レプリケーション無効)

レプリケーションを無効にした場合のスループットは、Tomcatが最も高く、JBoss EAP/ASについてはほぼ同等の性能となりました。セッションレプリケーションを行わないため、APサーバ台数の増加に伴いクラスタとしての処理性能も増加するという結果になります。
またスループットの増加量に着目すると、TomcatはJBoss EAP/ASと比較して台数が増加してもスループットの低下が少ないということがわかります(図6)。

レプリケーションを有効にした場合のスループット比較

セッションレプリケーションの設定を表8のようにして、テストを実施しました。

表8:セッションレプリケーションの設定

項目設定
キャッシュモードクラスタ全台に複製(JBoss:Replication、Tomcat:DeltaManager)
同期モード非同期
スループット(レプリケーション有効)

図7:スループット(レプリケーション有効)

スループット増加量(レプリケーション有効)

図8:スループット増加量(レプリケーション有効)

JBoss EAP/ASでは、APサーバを2台にしてもスループットは1台構成とほぼ変わらず、3台目以降からスループットが増加するという結果になりました。ノード数が2の場合は、セッションレプリケーションによるスループットの低下とサーバ台数増加によるスループットの向上が相殺されているものと推測されます。

セッションレプリケーションが有効の場合は、無効の場合と比べてスループットの増加量が小さいのはどのAPサーバも同様ですが、3台以降に着目してみるとJBoss EAPはTomcatと比べてスループットの増加量の低下が少ないということがわかります。

各APサーバのスループットを、クラスタノードが1台の場合を1とした相対値でグラフにしたものが図9です。

クラスタ台数増加による性能向上

図9:クラスタ台数増加による性能向上

JBoss ASは4ノードクラスタでも1.5台分ほどの性能しか出ないため、性能向上という観点からはスケールアウトのメリットはあまり期待できないと言えます。一方JBoss EAP、Tomcatは3ノードクラスタでおよそ2台分、4ノードクラスタではおよそ2.5台分の性能となることがわかりました。

結果の考察

クラスタ構成でのスループットを比較しましたが、セッションレプリケーションが有効の場合はTomcat、JBoss EAP、JBoss ASの順にスループットが高いという結果になりました。JBoss ASはクラスタ化による性能向上はあまり見込めないため、検証目的での利用にとどめておいた方がよさそうです。またJBoss EAP、Tomcatにおいても、クラスタノードの増加によりシステムとしてどれくらい性能向上に反映されるかは、サイジングの際に注意すべきポイントと言えます。

最後に

2回にわたってJBossの機能や性能について紹介しましたが、実際にJBossを利用する場合は稼働するJavaアプリケーションの開発や移行といった作業が発生します。JBossコミュニティには他環境からのアプリケーション移行手法や診断ツールも公開されていますので、JBossを採用される際には、参考にしていただければと思います。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30