WebLogic Server パフォーマンス チューニング ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

パフォーマンス チューニングのロードマップ

WebLogic Server および WebLogic Server アプリケーションのパフォーマンスのチューニングは、複雑で繰り返し実施しなければならない作業です。以下の節では、システム パフォーマンスの向上に利用できるチューニングのロードマップおよびヒントを示します。

 


パフォーマンス チューニングのロードマップ

ここでは、現在のアプリケーション環境をチューニングしてパフォーマンスを最適化するのに役立つロードマップを示します。

  1. パフォーマンスに関する目標の設定
  2. パフォーマンス メトリックの測定
  3. システムにおけるボトルネックの特定
  4. ボトルネックによる影響の軽減
  5. パフォーマンス目標の達成

パフォーマンスに関する目標の設定

パフォーマンスの目標を決めるには、デプロイされているアプリケーションや、システム環境の制約について理解する必要があります。アプリケーションのコンポーネントの条件にかなうアクティビティのレベルに関する情報を収集してください。これには次のものが含まれます。

パフォーマンスの目標は、次のような制約によって制限されます。

こうした情報を使用して、特定のハードウェアにおける応答時間、スループット、および負荷など、現在のアプリケーション環境における現実的なパフォーマンス目標を設定します。

パフォーマンス メトリックの測定

パフォーマンスに関する目標の設定」に示したパフォーマンス条件を決定したら、パフォーマンス目標を数値で示すために使用されるメトリックを測定します。「負荷テスト ツール」を参照してください。以下の節では、基本的なパフォーマンス メトリックの測定に関して説明します。

ディスクおよび CPU の使用状況のモニタ

高い負荷をかけた状態でアプリケーションを実行して以下をモニタします。

ゴールは、設定した目標の CPU 使用率をアプリケーション サーバが達成することです。アプリケーション サーバの CPU 使用率が低い場合は、データベースにボトルネックがないかどうかを確認します。データベースサーバの CPU 使用率が 100% に達する場合は、アプリケーションの SQL 呼び出しクエリのプランを見直します。たとえば、SQL 呼び出しで、インデックスを使用したりリニア検索を実行したりしていないかを確認します。また、データベース サーバの CPU に負荷がかかる ORDER BY 句を、アプリケーションで使用しすぎていないかどうかも確認します。「オペレーティング システムのチューニング」を参照してください。

データベース サーバのディスクがボトルネックになっている (ディスクの使用率が 100% に達している) ことが判明したら、アプリケーションで必要とされるだけの書き込みが実行できていないとみなし、より高速なディスクに交換するか、RAID (redundant array of independent disks) コンフィグレーションに変更します。

データベース サーバがボトルネックではないと判明したら、アプリケーション サーバのディスクがボトルネックになっていないかどうかを確認します。アプリケーション サーバのディスクがボトルネックになる原因としては以下が考えられます。

アプリケーション サーバでのディスク I/O を最適化する方法としては、より高速なディスクや RAID の使用、JMS の同時書き込みの無効化、tlog への JTA 直接書き込みの使用、HTTP ログ バッファの増設などがあります。

ネットワーク上のデータ転送のモニタ

アプリケーションとアプリケーション サーバの間、およびアプリケーション サーバとデータベース サーバの間のデータ転送の量を確認します。このデータ量がネットワークの帯域幅を超えないようにします。帯域幅を超える場合、ネットワークがボトルネックとなります。「ndd コマンドを使用した TCP パラメータの設定」を参照してください。

システムにおけるボトルネックの特定

ネットワークおよびデータベース サーバがボトルネックになっていないことが判明したら、オペレーティング システム、JVM、および WebLogic Server のコンフィグレーションを調べます。もっとも重要なのは、クライアントの負荷が高い状態で、WebLogic Server を実行するマシンの CPU 使用率が目標値に達するかどうかです。目標値に達しない場合は、アプリケーション内でロックが発生していないかどうかを確認します。ボトルネックを特定してアプリケーションのパフォーマンスを向上させるには、市販されているツール (JProbe、OptimizeIt など) を使用してアプリケーションをプロファイリングします。

ヒント : CPU 使用率が 100% に達している場合でも、アプリケーションをプロファイリングしてパフォーマンスを向上させることをお勧めします。

アプリケーションのプロファイリング ツールの詳細については、「パフォーマンス解析ツール」を参照してください。

ボトルネックによる影響の軽減

この手順では、現在の環境をチューニングして、設定したパフォーマンス目標に対するボトルネックの影響を軽減します。この手順では、ボトルネックの影響を排除するのではなく、軽減するという点に注意してください。チューニングでは、リソースを調整して設定したパフォーマンス目標を達成できます。このマニュアルで説明する範囲は次のとおりです (重要性の高い項目からリストされています)。

アプリケーションのチューニング

『Mastering BEA WebLogic Server: Best Practices for Building and Deploying J2EE Applications』の著者の言葉によれば、「優れたアプリケーション パフォーマンスは、優れたアプリケーション設計によって実現されます。あまりにも複雑すぎたり、設計が不十分であったりするアプリケーションでは、パフォーマンスを向上させるためにベスト プラクティスを実施したり、システムレベルのチューニングを行っても、低いパフォーマンスしか得られませんたとえば、リソースの競合は、アプリケーション ドメインに起因するというよりは、設計が不十分なケースと考えられます。

詳細については以下を参照してください。

DB のチューニング

データベースがエンタープライズ レベルのボトルネックになる可能性もあります。データベースの最適化は複雑となる場合があるため、ベンダに依存する場合があります。「データベースのチューニング」を参照してください。

WebLogic Server パフォーマンス パラメータのチューニング

WebLogic Server では、実際の環境やアプリケーションに合わせて細かくチューニングできるパフォーマンス関連の多数の OOTB (out-of-the-box) パラメータを使用しています。これらのパラメータをシステム要件に基づいてチューニングすることで、デフォルト設定のまま実行する場合に比べ、単一ノードのパフォーマンスおよびアプリケーションのスケーラビリティ特性を大きく向上させることができます。「WebLogic Server のチューニング」を参照してください。

JVM のチューニング

Java 仮想マシン (JVM) は、マイクロプロセッサ上で Java クラス ファイルのバイト コードを実行する仮想の「実行エンジン」インスタンスです。「Java 仮想マシン (JVM) のチューニング」を参照してください。

オペレーティング システムのチューニング

設定されているデフォルトのチューニング パラメータは、オペレーティング システムによって異なります。Windows プラットフォームの場合、通常はデフォルト設定を変更する必要はありません。一方、UNIX および Linux オペレーティングシステムでは、通常は適切なチューニングを行う必要があります。「オペレーティング システムのチューニング」を参照してください。

パフォーマンス目標の達成

パフォーマンス チューニングは反復操作です。システム上でボトルネックの影響を軽減したら、2 つ目の手順の「パフォーマンス メトリックの測定」に進み、パフォーマンス目標を満たしているかどうかを判断します。

 


チューニングのヒント

この節では、システム パフォーマンス全体をチューニングする際のヒントおよびガイドラインを示します。


  ページの先頭       前  次