TOP比較データ> はじめに




Javaアプリケーションサーバのクラスタリング機能比較
Javaアプリケーションサーバのクラスタリング機能比較

第7回:Javaアプリケーションサーバのパフォーマンス比較
著者:サンモアテック  小林 俊哉   2005/12/5
1   2  3  4  次のページ
はじめに

   これまでTomcat、JBoss、WebLogicの3製品のクラスタリング機能について解説してきました。今回はこの3製品のHTTPセッションレプリケーションのパフォーマンス比較を行います。
テスト環境

   比較対象となる3つのアプリケーションサーバでクラスタ環境を構築し、Webアプリケーションをデプロイします。アプリケーションはHTTPセッションレプリケーションを行うように設定しておきます。そして負荷テストを行い、各アプリケーションサーバの性能を比較していきます。

   テスト用アプリケーションはシンプルなサーブレットです。リクエストを受け付けるとHTTPセッションのsetAttributeメソッドを呼び出し、HTTPセッションに任意のサイズのオブジェクトを格納した上で、クライアントにレスポンスを返します。

   クラスタ環境は3台のサーバを用い、そのうち2台でアプリケーションサーバのクラスタを構築し、もう1台がロードバランサとなります。ロードバランサはApacheで、Tomcat/JBoss用にはmod_jk、WebLogic用にはmod_wlを用いて負荷分散を行います。WebLogicの場合、クラスタノードのほかに管理サーバのインスタンスが必要になりますが、管理サーバのインスタンスはクラスタ用サーバの片方に同居させます(注1)。

※注1: 構成としては不均衡になってしまいますが、ほかの製品と平等に「2台のサーバでクラスタを構成」という条件を満たすためにこのようになりました。

クラスタ環境(Tomcat)
図1:クラスタ環境(Tomcat)

クラスタ環境(JBoss)
図2:クラスタ環境(JBoss)

クラスタ環境(WebLogic)
図3:クラスタ環境(WebLogic)

   レプリケーションの設定は「同期(注2)」「ATTRIBUTE単位」で、「setAttributeが呼ばれたオブジェクトのみレプリケーションを実行」とします。よって、各アプリケーションサーバの設定は以下のようになります。

※注2: 「同期」とは「レプリケーションを実行した後にクライアントにレスポンスを返す」という方式です。WebLogicはこの方式で、かつ非同期に切り替えるオプションを持たないため、今回の検証では同期方式で比較を行います。
アプリケーション 設定する値
WebLogic デフォルト
Tomcat useDirtyFlag:true
replicationMode:pooled
JBoss replication-trigger:SET
replication-granularity:ATTRIBUTE
CacheMode:REPL_SYNC

表1:アプリケーションサーバの設定

   設定方法の詳細は本連載の第1回(Tomcat)、第3回(JBoss)を参照してください。

   アプリケーションへのアクセスにはJMeterを用い、ユーザ数を1から200まで増やしてレスポンスタイムとスループットを測定しました。アクセス間隔は500msとしています。

   テストを行うハードウェアのスペックは以下のようになります(3台とも同じです)。

  • CPU:Intel Xeon 2.8GHz
  • メモリ:2GB

表2:ハードウェアのスペック

   テストを行うソフトウェアのバージョンは以下のようになります。

  • Red Hat Enterprise Linux ES 2.1
  • Tomcat 5.0.28
  • JBoss 4.0.3SP1
  • WebLogic 8.1SP4

表3:ソフトウェアのバージョン(クラスタサーバ2台)

   各アプリケーションサーバはSun MicrosystemsのJDK 1.4.2で動作します。

ロードバランサ
  • RedHat Enterprise Linux ES 2.1
  • Apache 2.0.54(prefork)
  • mod_jk 1.2.15
  • mod_wl_20(WebLogic 8.1SP4に同梱)
テストクライアント
  • JMeter 2.1.1

表4:ロードバランサとテストクライアント


チューニング

   各アプリケーションサーバを実行するJavaのヒープサイズを1024MBとしました(-Xms1024m -Xmx1024m)。アプリケーションを動作させるスレッド数は、WebLogicではプロダクションモードのデフォルトである25としています。

   一方Tomcat/JBossとApacheを連携するmod_jkは、Apacheからの接続を維持しつづけるアーキテクチャを前提としていますので、同時接続数にあわせてserver.xmlのmaxThreads属性をチューニングする必要があります。今回は同時にApacheから接続し得る最大数である200としました。

※注3: このテストは特定ベンダーなどにスポンサリングされていない、独立なベンチマークです
1   2  3  4  次のページ


株式会社サンモアテック 小林 俊哉
著者プロフィール
株式会社サンモアテック  小林 俊哉
株式会社サンモアテック 技術開発事業部
2001年入社。NOMAD(4GL言語)開発にはじまり、Webサービス、グリッドなどの新技術検証、またJBossやTomcatを含むオープンソース製品のサポートに従事。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第7回:Javaアプリケーションサーバのパフォーマンス比較
はじめに
  テスト結果
  同期と非同期
  JBossの場合
徹底比較!!APサーバ
第1回 Tomcatによるクラスタリングの実現
第2回 Tomcatのクラスタ設定
第3回 JBossによるクラスタリングの実現
第4回 JBossのクラスタ設定
第5回 WebLogic Serverで実現するクラスタリング
第6回 WebLogic Serverが提供するクラスタ機能
第7回 Javaアプリケーションサーバのパフォーマンス比較
第8回 Javaアプリケーションサーバのクラスタ機能比較
第9回 JBossクラスタのチューニング

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です