APサーバのチューニング項目を知る:J2EEパフォーマンスチューニング(3)(6/6 ページ)
「アプリケーション・サーバを使いJ2EEべースのWebアプリケーションを構築できたのはいいが、どうも本来のパフォーマンスが出ていない」とは、よく聞く話である。本連載では、そういった事態に遭遇した場合に、具体的にどのように対処してパフォーマンスを向上させるかについて解説していく。2回は、「パフォーマンスが出ない!」という場面で、具体的にどのような対処をとったら良いのか、そのオーバービューを紹介しよう。具体的なチューニング手法は、第3回以降で詳細に解説していく。(編集局)
(5)クラスタリング
クラスタリングに関するチューニングポイント
一般のアプリケーション・サーバは、その信頼性と拡張性を確保するためクラスタリング機能を持っています。クラスタリング機能とは、簡単にいうと複数のアプリケーション・サーバ群を1つのグループとして取り扱い、各サーバで等価なサービスを提供するためのものです。通常、ロードバランシング(リクエストの分散サーバ処理)とフェイルオーバー(クラスタ内のあるサーバがダウンした際に別のサーバが処理を引き継ぐ)の機能を提供します。フェイルオーバーを実現するためには、ユーザーセッション情報を永続化する処理が必要になります。
WLS61の場合は、ユーザーセッションの永続化に関して、次の3つから選択できるようになっています。
- Fileベース
- JDBCベース
- In-memoryベース
パフォーマンスの点から見ると、当然ながらIn-memoryベース方式が最も高速で、JDBCベースに比べて約2倍以上(当社比)の性能を引き出すことが可能です。WLS61のIn-memoryクラスタリングの詳細については、以下の記事をご覧ください。
●シリーズ連載:止まらないWebシステム構築の基礎知識
「第1回 アプリケーション・サーバのクラスタリングを知る」
WLS61のIn-memoryクラスタリングでは、ユーザーの会話ステートを、クラスタ内の動的に割り当てられたプライマリサーバとバックアップサーバの2台で保持します。そのためプライマリサーバで会話ステートの更新が起こると、即座にバックアップサーバにコピーされる仕組み(レプリケーション)がとられています。この際、会話ステート(HttpSession)のサイズが大きくなりすぎないよう注意する必要があります。この注意点については、以下の記事が参考になります。
●事例に学ぶWebシステム開発のワンポイント(1)
「クラスタ化すると遅くなる?−HttpSessionへの積み過ぎに注意−」
またWLS61では、ハードウェアロードバランサ(以後、HLB)から直接WLSクラスタリングにリクエストを振り分けることも可能です。
HLB+WLSクラスタリング組み合わせのメリットは、次のとおりです。
●メリット1
HLBが持っている多彩なロードバランシングメソッドを活用できます(通常のIn-Memoryでは、Proxyサーバがラウンドロビンで振り分けるだけ)。例えばF5社の「BIG-IP」の場合は、十数種のメソッドを備えています。
基本的なロードバランシングメソッドに加えて、以下に代表されるダイナミックモードも備えています。
項目 | 内容 |
---|---|
Least Connection | 最もコネクションの少ないサーバに接続を割り振る |
Dynamic Ratio | アプリケーション・サーバから直接収集した情報に基づき、割合を設定して接続を割り振る |
Observed | 最小接続と最速応答時間が最も優れているサーバに接続を割り振る |
●メリット2
負荷分散装置のBIG-IPの場合、管理用のコンソールが提供されており、管理が比較的容易に行えます。上述のロードバランシングメソッドなどの変更も、管理コンソールから行えます(図9)。
●メリット3
In-MemoryでProxyサーバがソフトウェア的にクッキー情報からプライマリサーバを検出するのに比べ、HLBのスティック処理の方が高速であるといえます。
「餅は餅屋」ではないですが、お互いの得意とする専門分野を有効に組み合わせることで、システム全体の処理バランスが良くなり、結果的にWLS61の安定稼働とパフォーマンス性能も引き出しやすくなると考えることができます。
Copyright © ITmedia, Inc. All Rights Reserved.