TOPThinkIT News> JBossコミュニティの行方
JBoss World Las Vegas 2006 Report
JBoss World Las Vegas 2006 Report
JBoss World Las Vegas 2006 Report

第3回:JBossコミュニティの行方
著者:野村総合研究所  岡田 拓郎   2006/9/11
1   2  3  次のページ
JBossコミュニティの行方

   3回にわたって紹介している「JBoss World Las Vegas 2006」も今回で最終回となる。残りのセッションの紹介とともに、今回のカンファレンスを総括する。


EJB3/Seam Web Tier Performance and Scalability

   このセッションでは、Michael Yuan氏(JBoss/Red Hat Inc.)とDave Jaffe氏(Dell Inc.)によるJBoss Seamアプリケーションのパフォーマンスに関する考察が行われた。

   JBoss Seamを用いて簡素なWebアプリケーション(DBアクセスは一切なし)を作成し、負荷テストツールを用いて300ユーザから1200ユーザまでの同時アクセスによる負荷をかけた。その結果、JBoss Seamアプリケーションに特有の2つの問題が明らかとなった。

   1つめの問題はメモリの使用量に関する問題である。JBoss Seamでは、HTTPセッションによるキャッシュを行っていないので(メモリリークを避けるため)、ガーベジコレクトしなければならない多くのオブジェクトが存在する。

テストアプリケーション
テストアプリケーション
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ガーベジコレクトはアプリケーションの処理を中断させるため、頻繁に発生するとボトルネックとなってしまう(メモリ容量が大きいとさらに顕著である)。この問題に対しては、同一マシン内でJVMを分散させ、1つのJVMプロセスに割り当てられるメモリ容量を縮小することで解消をはかる。また、パラレルGCを使用してガーベジコレクトを効率化する。

   2つめの問題はレプリケーションに関する問題である。JBoss Seamでは、「コンテキスト」に基づいたセッションオブジェクトが生成やタイムアウトのタイミングでレプリケーションされるが、フェイルオーバーするノードが多いだけオーバヘッドが発生する(そのため上記の問題とのトレードオフも発生する)。この問題に対しては、JBoss Cacheの新しい機能であるバディキャッシュを利用することにより解消が可能である。

JBoss Seamアプリケーションのパフォーマンス
JBoss Seamアプリケーションのパフォーマンス
(画像をクリックすると別ウィンドウに拡大図を表示します)

   JBoss(Application Server)の従来のクラスタリング環境では、一般的にクラスタ内のすべてのノードに対してレプリケーションが行われていた。これでは、ノードの数が増加するに従ってパフォーマンスが劣化してしまう。これに対して、JBoss Seamアプリケーションではノードの「バディ」を構成することによって(レプリケーション先を限定することによって)パフォーマンスを維持することができる。

1   2  3  次のページ


株式会社野村総合研究所 岡田 拓郎
著者プロフィール
株式会社野村総合研究所  岡田 拓郎
証券系システムの基盤づくりの一環としてフレームワーク、ミドルウェアの研究開発に携わる。現在は、JBoss.ORGコミュニティのコミッタと共に性能解析ツールJBossProfilerの拡張を行っている。また、オープンソースのコンポーネントライブラリ「Nimbus」のコミッタも勤める。