「アプリケーション・サーバを使いJ2EEべースのWebアプリケーションを構築できたのはいいが、どうも本来のパフォーマンスが出ていない」とは、よく聞く話である。本連載では、そういった事態に遭遇した場合に、具体的にどのように対処してパフォーマンスを向上させるかについて解説していく。2回は、「パフォーマンスが出ない!」という場面で、具体的にどのような対処をとったら良いのか、そのオーバービューを紹介しよう。具体的なチューニング手法は、第3回以降で詳細に解説していく。(編集局)
第3回は、アプリケーション・サーバにどのようなチューニング項目があるのかを解説します。実は、アプリケーション・サーバのパフォーマンスチューニングに関するパラメータや設定値は、J2EE標準に関係する部分より、アプリケーション・サーバ独自の実装に依存する部分が多くなってきます。今回は、「BEA WebLogic Server 6.1」(以後WLS61)を例に取り、J2EEアプリケーション・サーバにおけるパフォーマンスチューニングの項目について解説します。
第2回「パフォーマンスチューニングの定石を知る」でも解説されていますが、アプリケーション・サーバを使ってシステムを構築する際の構成についてもう一度整理しておきましょう。通常アプリケーション・サーバを使う場合、システムは下図のような多重レイヤ構成になります。
下のレイヤから記述していくと、
となります。この図からも明らかなように、システム全体としての性能を上げるためには、各レイヤのチューニングポイントをよく理解し、開発フェーズの早い段階から性能に関するデータを収集しておくことが重要です。
日本BEAシステムズのプロフェッショナルサービス(システム設計/運用をコンサルタントとしてサポートするサービス部門)では、顧客から“アプリケーション・サーバの性能が出ない!”という報告を受け、原因究明を進めた結果、アプリケーションの設計やコーディングに問題のあるケースが多いようです。改善可能な性能向上を100とした場合、アプリケーションの改善をすることで70?90%の性能改善が図られる場合もあるようです。システム全体の性能が期待したほどでない場合、まずアプリケーションを見直してみることがパフォーマンス改善の最初のアプローチになるでしょう。
また、アプリケーション・サーバの下のレイヤ(ハードウェア/ネットワーク/Java VM)における設定の問題で性能が出ないというケースも多いので、開発の早い段階から各フェーズの性能データをまめに収集しておき、問題が発生した場合にどのレイヤがボトルネックになっているかを切り分けられることが理想です。くれぐれもシステムのカットオーバー直前に性能評価を行い、その結果性能が出ずに大慌てすることのないよう、常日ごろから備えておきましょう。もう一度、第2回「パフォーマンスチューニングの定石を知る」を読み返し、参考にしてください。
各社のアプリケーション・サーバをパフォーマンスチューニング管理という点で見ていくと、以下の2つに分けられます。
WLS61は後者に当てはまります。同サーバは最初からある程度最適化が施されていますが、WLS61のチューニングポイントを知り、正しいパラメータを設定することで、システム全体としてのさらなる性能向上、およびJ2EEアプリケーション運用時の高速安定稼働に役立てることができます。
それでは本題であるアプリケーション・サーバ(WLS61)のチューニングポイントについて解説していきます。WLS61のチューニングポイントはそれほど多くはありません。今回は次の項目を取り上げます。
(1)実行スレッド
(2)ネイティブI/O
(3)JDBCコネクションプール
(4)EJB
(5)クラスタリング
以上5項目を、順に解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.