JBossクラスタの概要と性能比較

2014年12月24日(水)
小原 雄樹

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を採用される際には、参考にしていただければと思います。

TIS株式会社 コーポレート本部 戦略技術センター 主任

学生の頃にLinuxで構築された研究室のシステムに影響を受けOSS関連の業務に進む。システムインテグレーションやOSサポートを経験し、2012年からは戦略技術センターにてOSSを利用した新規技術の開発や検証などを行っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています