リリースから2年経ったJBoss EAP 6の性能を検証してみる 2

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

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

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

検証環境

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

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

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

図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

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