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

第9回:JBossクラスタのチューニング
著者:サンモアテック  小林 俊哉   2005/12/21
前のページ  1  2  3
TCPスタック

   tc5-cluster-service.xmlに記述されているデフォルトのプロトコルスタックはUDPによるマルチキャストベースのものですが、TCPベースのプロトコルスタックで動作させることも可能です。

   このプロトコルスタックの例が、tc5-cluster-service.xmlにコメントアウトで記述されています。デフォルトのUDPベースの設定を削除し、TCPベースのプロトコルスタックを有効にした上で、bind_addrとinitial_hostsの各属性を環境にあうように設定します。

tc5-cluster-service.xml:TCPスタック
<attribute name="ClusterConfig">

   <config>
      <TCP bind_addr="host1" start_port="7810" loopback="true"/>
      <TCPPING initial_hosts="host1[7810],host2[7810]" port_range="3" timeout="3500"
         num_initial_members="3" up_thread="true" down_thread="true"/>
      <MERGE2 min_interval="5000" max_interval="10000"/>
      <FD shun="true" timeout="2500" max_tries="5" up_thread="true" down_thread="true" />
      <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false" />
      <pbcast.NAKACK down_thread="true" up_thread="true" gc_lag="100"
         retransmit_timeout="3000"/>
      <pbcast.STABLE desired_avg_gossip="20000" down_thread="false" up_thread="false" />
      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="false"
         print_local_addr="true" down_thread="true" up_thread="true"/>
      <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
   </config>

</attribute>
TCPスタック変更後のテスト結果

   変更後のテスト結果は以下の通りです。

TCPスタック、1KB、レスポンスタイム
図9:TCPスタック、1KB、レスポンスタイム

TCPスタック、1KB、スループット
図10:TCPスタック、1KB、スループット

TCPスタック、100KB、レスポンスタイム
図11:TCPスタック、100KB、レスポンスタイム

TCPスタック、100KB、スループット
図12:TCPスタック、100KB、スループット

   セッションオブジェクトが100KBの場合でも大幅な性能向上が見られ、Tomcatの性能に迫る効果をあげています。TCPスタックの設定であればJBossのセッションレプリケーションも性能面の問題がほぼ解消されたといってよいでしょう。

   TCPスタックはクラスタノード間をTCPで結ぶことになるため、ノード数が増えると網の目状に接続数が増大します。

ノード数の違いによる接続数の違い
図13:ノード数の違いによる接続数の違い

   このためノード数が増えた場合はTCPスタックが不利になることも考えられます(その場合は前掲のUDPチューニングを採用してください)。しかし、今回の検証では2ノードのクラスタで良好なパフォーマンスをみせることを証明しました。


終わりに

   最新のモジュールとチューニングの組み合わせで、JBossはTomcatに迫る性能をだすことが確認できました。これはオープンソースソフトウェアが日々向上を続けているということの証左といえるかもしれません。

   実は今回掲載したテスト以外にもライブラリとチューニングの組み合わせを試しましたが、「古いバージョンのJBossCache + TCPスタック」ではあまり効果が得られませんでした。つまり性能改善にはJBossCacheの差し替えが必須ともいえます。

   また依存性の問題はないと記述しましたが、本番への適用においてライブラリの変更を行うことは抵抗のある人も多いでしょう。JBossCache 1.2.4が組み込まれるJBossの次のバージョンに期待を寄せています。

前のページ  1  2  3


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


INDEX
第9回:JBossクラスタのチューニング
  はじめに
  バッファのチューニング
TCPスタック