Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使い方 11g リリース1(10.3.5) B60994-03 |
|
前 |
次 |
WLDFには、JRockit Flight Recorderとの固有の統合点が用意されています。ランタイムまたはインシデント後処理の分析に対して共通データ・セットに含めるためにWebLogic Serverイベントをオプションでフライト・レコーダに伝播できます。また、フライト記録データはWLDF診断イメージ・キャプチャにも含まれています。それにより、WLDF監視ルールに基づいてフライト記録スナップショットを取得できます。この機能のフル・セットにより、JVMおよびFusion Middlewareの両方で実行しているコンポーネントに対してランタイム・システム情報を単一ビューで取得して、分析できます。
次の項では、WLDFのJRockitフライト・レコーダとの統合に関する概要を示し、この統合をWebLogic Serverに基づく本番システムに対しての包括的なパフォーマンス分析および診断ファウンデーションに提供する方法を表示する共通使用方法のシナリオについて説明します。
WebLogic Serverインストール・プログラムで利用可能なOracle JRockitのバージョンには、JRockitフライト・レコーダ(JFR)と呼ばれるコンポーネント、パフォーマンス監視およびプロファイリング・ツールが含まれています。JFRは、診断情報を継続的に記録して、システム・クラッシュなどの突発障害でもそれを利用可能にします。
JFRは、必要に応じてアクセスできるフライト記録またはJFRファイルと呼ばれる診断およびプロファイリング・データのバッファを保持します。図3-1で示されているように、フライト記録機能は、新しいデータが継続的に追加され、古いデータが削除される航空機の「ブラック・ボックス」と同じ方法で動作します。
JFRフライト記録の詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダ・データ・フローに関する項を参照してください。
イベントに対して生成されたシステム実行フローの詳細を検討するには、JFRファイルをいつでも分析できます。JFRファイルのデータには、JVMからのイベントおよびWebLogic ServerとOracle動的モニター・システム(DMS)などの他のイベント・プロデューサが含まれています。
JFRの記録を有効にする場合およびJFRでキャプチャするWebLogic Server診断が発生するようにWLDFを構成した場合に生じる追加処理オーバーヘッドの量は最小限です。これは、特に最大値を追加する本番環境でフルタイム・ベースで使用できます。
JFRには、次の重要な利点があります。
継続的に実行するように設計されている - フライト記録でキャプチャしたJVMとWLDFの両方のイベントでフルタイム・ベースで実行するようにJFRを構成すると、システム・クラッシュなどのイベントが発生したとき診断データを常に使用できます。これにより、イベントまでの診断データが使用できるようになり、イベントを再作成せずに診断することができます。
包括的なデータ - JFRでは、JRockitランタイム・アナライザおよびJRockit待機時間分析ツールによって、生成したデータが組み合され、1つの場所に表示されます。
イベント・プロバイダとの統合 - JRockitでは、JFRによって、WebLogic Server、Oracle Dynamic Monitoring System (DMS)、および他のOracleの製品など追加システム・コンポーネントを監視できるAPIのセットが含まれます。
JFRの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダの概要に関する項を参照してください。
JFRとの統合を利用するために、WLDFで提供される主な機能には次のものが含まれます。
JFRフライト記録でキャプチャされたWLDF診断データ
JFRフライト・レコードでキャプチャされたWebLogic Serverイベントの診断データを生成するようにWLDFを構成できます。キャプチャされたイベントには、Webアプリケーション、EJB、JDBC、JTAとJMSリソース、リソース・アダプタおよびWebLogic Webサービスなどのコンポーネントが含まれます。
WLDF診断ボリュームの調節
フライト記録のWebLogic Serverイベント・データを生成する機能は、WLDF診断ボリューム構成によって制御されます。この制御では、JFRによってキャプチャされたWebLogic Serverイベント・データの量も決定し、生成された各WebLogic Serverのデータ量を調整できます。詳細は、「WLDF診断ボリュームの構成」を参照してください。
注意:
|
負荷時の生成されたイベントの自動スロットル
該当WebLogic Serverインスタンスで処理される負荷を増加すると、WLDFはイベント発生とJFRファイルに記録するために選択された受信WebLogic Serverリクエストの数を自動的にスロットルし始めます。システム負荷の増加および下落に伴って、スロットルの程度は継続的に調整されます。
スロットルには、3つの重要な利点があります。
JFR用のWLDFによって発生したキャプチャ・イベントのオーバーヘッドは、システムが特に負荷のかかっている状況の場合、最小化されます。
JFRフライト記録のバッファに含まれる時間間隔が最大化され、よりよい履歴レコード・データが取得できます。
スロットルには、サンプリング受信WebLogic Serverリクエストの影響があり、負荷のかかっている状況下でシステム・アクティビティの正確な包括的ビューを提供しながら高いパフォーマンスを維持します。
注意: スロットルは、WLDFで取得したフライト記録データのみに影響します。これは、JVMなど、他のイベント・プロデューサによって取得されたデータに影響しません。 |
JFRファイル用のWLDF診断イメージ・キャプチャ・サポート
フライト・レコーダによってJFRファイルが生成されている場合、WLDF診断イメージのキャプチャには自動的にJFRファイルが含まれます。JFRファイルには、WebLogic Serverを含むすべてのアクティブなイベント・プロデューサによって生成されたデータを含まれます。監視および通知コンポーネントを使用して取得したイメージには、可能な場合JFRファイルが含まれます。
診断イメージのキャプチャのコンテンツをダウンロードするWLSTコマンド
WLSTには、「診断イメージ・キャプチャのダウンロード用のWLSTオンライン・コマンド」で説明した診断イメージのキャプチャのコンテンツをダウンロードするコマンドが含まれています。一般的には、これらのコマンドは、診断イメージのキャプチャに含むすべてのエントリのリスト、コピーおよびダウンロードに役に立ちますが、可能な場合、JFRファイルの取得にも使用できます。一度診断イメージのキャプチャから取得すると、JFRファイルはJRockit Mission Controlで表示されます。
この項では、重要な診断に関する問題を解決するために役に立つJRockitフライト・レコーダを使用した3つの一般的なビジネス・ケースが要約されています。
これらのシナリオの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダ・ユース・ケースに関する項を参照してください。
「破滅的な」失敗が発生した場合、フライト・レコーダ・バッファの内容は、航空機のブラック・ボックスと類似した方法で問題発生後の解析として使用できます。アプリケーションの終了によって生じるJVMクラッシュまたはメモリー不足エラー(OOME)はこのような失敗の例です。
これらの状況では、フライト・レコードには、障害の原因を判別するのに役に立つ次の情報を含まれます。
クラッシュのときのフライト・レコーダの構成のメタデータを含むJVMコア・ダンプ。さらに、フライト・レコーダが永続記憶城のモードで実行している場合、データ・バッファ・ファイルには、ある程度のデータが含まれている可能性があります。
障害が発生する前のWLDFによってキャプチャされたWebLogic Serverイベント。
永続モードで実行している場合、JFRはメモリーとディスクの組合せを使用して、そのバッファを格納します。最新のデータはメモリーに格納され、「古く」なるとディスクにフラッシュされます。このモードでは、停電または同様の大惨事が起こった場合もディスク上のデータは使用できます。最新のデータのみ使用できなくなりますん(たとえば、ディスクにフラッシュされていないデータ)。テキスト・ダンプ・ファイルには、適用可能な場合データ・バッファへのパスを含む大惨事の場合のフライト・レコーダ構成のメタデータがあります。永続モードの詳細は、『Oracle JRockit Flight Recorderラン・タイム・ガイド』のオペレーティング・モードに関する項を参照してください。
プロファイリングでは、特定時点で始まるデータがキャプチャされます。これによって、その時点の後に発生したイベントを分析することができます。次の項で説明するRADARとは対照的に、プロファイリングには、これより前のデータではなく、特定のイベントが発生した後に発生した診断データの分析が含まれます。
JRockitフライト・レコーダでのプロファイリングにより、ロック競合の詳細分析および待機時間の原因を実行する機能を最適化できます。
RADARは、特定のイベントがそのイベントに先立つシステム・アクティビティを理解するために発生したときの実行時に生成される診断データの調査です。たとえば、重大なエラー・メッセージが生成される前に発生するシステム・アクティビティなどです。JRockit Flight RecorderとともにWLDFで利用できる診断機能を使用して、問題が発生する場合に大量のシステム全体の診断データを取得できます。そして、それぞれのイベントを他のシステム・アクティビティに迅速に関連付けるよう、JRockit Mission Controlの機能を利用して、JFRファイルに指定された「スナップショット時間」内に実行データを処理します。それにより、問題の原因を切り離すことができます。
イメージ通知は、JRockit Flight Recorderを使用してRADAR性能を強力にするWLDF機能の1つです。それにより、特定のイベントまたはエラー条件に対して診断イメージ・キャプチャを自動的に作成できます。イメージ通知の結果として作成された診断イメージ・キャプチャには、JFRファイルが自動的に含まれます。また、JFRファイルを診断イメージ・キャプチャから抽出でき、ただちにJRockit Mission Controlで調査するか、または後で分析するために保存できます。JRockit Flight RecorderによってWLDFデータが取得される時に使用するイメージ通知は、特にこの種類の断続的な問題のリアルタイム診断に適しています。
イメージ通知はWLDFの監視および通知システムの一部です。イメージ通知を設定するには、1つ以上の個々の監視ルールを作成します。監視ルールには、検出する監視のイベントを指定するためにWLDF問合せ言語を使用する論理式が含まれています。たとえば、次のログ・イベント監視ルールは、重大度レベルがクリティカル
でIDがBEA-149618
のサーバー・ログ・メッセージを検出します。
(SEVERITY = 'Critical') AND (MSGID = 'BEA-149618')
監視ルールは次のいずれかを監視できます。
ローカル・ランタイムMBeanサーバー内の収集可能なランタイムMBeanインスタンス
ランタイムMBean属性が高メモリー使用率またはサーバーとのオープン・ソケット接続に関する問題などのパフォーマンス問題を検出する場合、ハーベスタの監視がイメージ通知をトリガーできます。
サーバー・ログに発行されたメッセージ
特定のメッセージ、重大度レベルまたは文字列を発行する場合、ログ監視がイメージ通知をトリガーできます。
WLDFインストゥルメンテーション・コンポーネントを生成したイベント
インストゥルメンテーション・サービスが特定のイベントを生成する場合、イベント監視がイメージ通知をトリガーできます。
詳細については、次のトピックを参照してください。
次の項では、診断イメージ・キャプチャからのJFRファイルの取得方法およびJFRファイルにあるWebLogic Serverイベントを確認するためのJRockit Mission Controlの使用例について説明します。
診断イメージ・キャプチャ自体は、異なるサーバー・サブシステムで作成された個々のイメージを含む単一のJFRファイルです。JFRファイルがある場合、それはファイルJRockitFlightRecorder.jfr
として診断イメージに含まれています。
診断イメージ・キャプチャは、たとえばWebLogic Server管理コンソール、WLSTまたはJMXアプリケーションなどのオンデマンドで生成できます。または、イメージ通知の結果として生成できます。診断イメージ・キャプチャの生成方法および作成される場所の構成方法の詳細は、Oracle WebLogic Server管理コンソール・ヘルプの診断イメージの構成と取得に関する項を参照してください。
JFRファイルの内容を表示するには、まず初めに、第5章「診断イメージの構成と取得」の説明に従って、診断イメージ・キャプチャからJFRファイルを抽出する必要があります。JFRファイルを抽出した後、JRockit Mission Controlでその内容を表示できます。
たとえば、診断イメージ・ファイルからJFRファイルを取得して、ローカル・ディレクトリに保存するWLSTスクリプトは、「サンプル: 診断イメージ・キャプチャからのJFRファイルの取得」を参照してください。
JRockit Mission Controlを使用して、診断イメージ・キャプチャから抽出した後にフライト・レコーダ・ファイルの内容を確認します。次の項では、WebLogic ServerイベントのWLDFのみならずJRockit JVMなどの他のすべての使用可能なイベント・プロデューサから生成された診断データにドリルダウンするためにツール・サポートの大部分を指定するJRockit Mission Controlグラフィカル・ユーザー・インタフェースの機能の一部について説明します。
JRockit Mission Controlインタフェースの詳細は、Oracle JRockit Mission Controlオンライン・ヘルプを参照してください。「JRockit Mission Controlクライアントの概要」も参照してください。
JRockit Mission ControlにはJRockitフライト・レコーダ・グラフィカル・ユーザー・インタフェースが含まれており、これによりOracle JRockitのフライト・レコーダ対応バージョンを実行しているユーザーはJVMの記録、現在の記録設定およびランタイム・パラメータを表示できます。JFRインタフェースには、イベント・プロデューサおよびタイプ、イベント・ロギングおよびグラフ化、スレッドによるイベント、イベント・スタック・トレースおよびイベント・ヒストグラムなどのJFRファイルに記録されたイベント情報に直接アクセスできるイベント・タイプ・ビューが含まれています。
JFRインタフェース内の「概要」タブを使用して、ボトルネックまたはシステム状態不良の他の原因を表す動作を公開できるため、システムの一般的な状態を分析できます。図3-2には、イベント・タイプ・ビュー内の「概要」タブの例を示します。
図3-2で示した情報について次の点に注意してください。
「イベント」タブ・グループのアイコンを選択して、「イベント・タイプ」ビューが表示されます。
フライト・レコーダ・ファイル名が「概要」タブの上部に表示されます。JFRは常にJRockitFlightRecorder.jfr
と名付けられており、診断イメージ・キャプチャからダウンロードした後、これをわかりやすい名前に変更すると便利です。
左側の「イベント・タイプ」ブラウザは、記録にある使用可能なイベントを表示するツリーです。これは「イベント」タブ・グループとともに機能し、関心のあるイベントまたはイベントのグループを選択し、それについて詳細な情報を取得できます。
「イベント・タイプ」ブラウザでエントリの選択または選択解除すると、「概要」タブで表示される情報が動的にフィルタされます。たとえば、WebLogic Serverのみ選択すると、すべての非WebLogicイベント・プロデューサがフィルタされ除去されます。
範囲ナビゲータは、「概要」タブ・タイトルの下に表示されるグラフであり、選択したタブで表示されるデータに関連する記録のすべてのイベントを表示するタイムラインです。表示されたデータの範囲を調整するためにボタン・セットがあります。これによって、フライト・レコーダ・データの詳細へのドリルダウン処理が簡略化されます。
「プロデューサ」セクションでは、表示されているデータが発生した各イベント・プロデューサを識別されます。各プロデューサにメトリックがあり、表示されたイベント・データの総数セットの一部として各プロデューサによって生成されたアクティビティのボリュームを示します。
「イベント・タイプ」セクションでは、各イベント用の主要なメトリック・データとともに、「概要」タブに表示されるすべてのイベントがリストされます。
図3-2 JRockit Mission Control内のJRockitフライト・レコーダ・ファイルの概要ページの例
この項では、WebLogic ServerでホストされるWebアプリケーション内の特定のリクエストに関連付けられたイベント・アクティビティを識別するために開発者およびサポート・エンジニアが使用する手順の例を示します。この例は、パフォーマンスの問題を診断する特定の方法をお薦めするものではありませんが、パフォーマンスの問題を検索して分析するプロセスを簡単にすることのできるJFRグラフィカル・ユーザー・インタフェースの使用方法を簡単に示します。
この項では、次の例を説明します。
JRockit Mission Controlを起動してJFRファイルを開く場合、分析する特定のイベントを迅速に選択するよう「イベント・タイプ」ビューを使用できます。「イベント・タイプ」ブラウザ(イベント・タイプ・ビューで使用可能)のアイテムを選択および選択解除することで、選択したイベント・タイプのみの情報を表示するようにJFRグラフィカル・ユーザー・インタフェースで表示される情報が迅速に変更されます。
図3-3は、サーブレット・イベント・タイプのみを選択している状態でのイベント・タイプ・ブラウザを示します。
1つ以上のイベント・タイプによって記録されるイベントの詳細を表示するには、JFRグラフィカル・ユーザー・インタフェースの下部にある「ログ」タブを選択します。サーブレット・イベント・タイプの「ログ」タブの例を、図3-4に示しています。
「ログ」タブを使用する場合は、次のようにイベントの詳細を表示できます。
「イベント・ログ」表の個々の列の先頭をクリックして、イベントのソート順を変更できます。たとえば、「期間」列をクリックすると、実行に最長時間がかかったイベントを迅速に識別できます。
「イベント・ログ」表でイベントを選択すると、「イベント属性」表ではそのイベントの詳細が表示されます。たとえば、図3-4では、次の属性を示します。
イベントの開始時間、終了時間および継続時間
サブーレットでリクエストを発行したユーザーのID
呼び出されたサーブレットのメソッド、クラス名およびURI
実行コンテキストのID (ECID)
異なるイベント・タイプには異なる属性があります。たとえば、JDBCイベントの場合、SQL文、使用したJDBC接続およびこれを呼び出したスタックを表示する属性をスクロールできます。インタフェースによって、詳細に分析できる予期しない動作を簡単にスキャンできます。
注意: ECIDの値は一意の識別子で、各イベントを同一のリクエスト実行フローの一部として相関させるために使用できます。たとえば、操作セットの分析による実行フローのトラッキングに関する項で示されるように、特定のリクエストに関連すると識別されるイベントは、通常、同一のECID値を持ちます。ただし、ECID文字列自体の形式は、変更しやすい内部メカニズムによって決定されるため、その形式に依存関係を持ったり配置してはなりません。 |
JRockit Mission Control内のJFRグラフィカル・ユーザー・インタフェースでは、特定のイベントの結果として発生したシステム・アクティビティのランタイム・トレイルを分析できます。この例では、まず操作セットが定義され、ランタイム・トレイルが分析されます。操作セットは、JRockit Mission Controlで動作するために選択するイベントのいずれかのセットです。
この項に示された例では、操作セットが、図3-4で示した「イベント・ログ」表で選択したサーブレット呼出しイベントとして、同じ実行コンテキストID (ECID)属性を持つイベントのために作成されます。操作セットは、そのサーブレット呼出しの結果とした実行フローを参照するために分析されます。(異なる属性にも一致するイベントを含めるようにこの操作セットを拡張できます。たとえば、特定のSQL文を含みますが、必ずしも同じECIDではないイベント)。
この操作セットは、「イベント・ログ」内の任意のイベントを右クリックし、「操作セット」>一致するECIDの追加>「ecid」の順に選択して定義します。図3-6を参照してください。.
操作セットは、さらに、図3-7に示すイベント・ログ表上の「操作セットのみを表示」を選択して表示されます。操作セットが、範囲ナビゲータでどのように示されているかに注意してください。
サーブレットの呼び出しイベントを生成したリクエストの結果表示された実行フローの実行時トレイルは、追加イベント・タイプを含めて表示できます。たとえば、図3-8では、「イベント・タイプ」ブラウザを使用してすべてのWebLogic Serverイベント・タイプが追加され、イベントが発生順にリストされているときの操作セットを示します。(「開始時間」列の先頭を選択してイベントを発生順にソートできます。)
この例では、イベント・ログに表示される実行フローの一部が示されています。
サーブレットのURIが呼び出されます。
サーブレットはEJBを使用するため、データベースへのアクセスが必要となります。
JDBC接続を取得し、トランザクションが開始されます。
操作セットは、実行フローの時間間隔を制約し、追加プロデューサからの相関イベントを追加して、さらに分析できます。表示されたイベントために時間間隔を制約することにより、操作セットと同時に発生したイベント・ログにイベントを追加できます。これよって、パフォーマンスの問題を診断するために役に立つ実行コンテキストの詳細を追加できます。
範囲ナビゲータで範囲選択バーを選択して時間間隔を制約することができます。このバーをポインタでグラブし、内側または外側にドラッグして、イベント・ログに表示されるイベントの範囲を変更することができます。図3-9で示すように、ナビゲータのいずれかの先端上マウスポインタを乗せると、範囲選択バーがアクティブ化されます。
JRockit JVM,などの追加プロデューサからのイベントは「イベント・タイプ」ブラウザから選択できます。JVMイベントにはECID属性がないため、そのイベントを操作セットのWLDFイベントに含めることはできません。したがって、JVMイベントを表示するには、「操作セットのみを表示」の選択を解除する必要があります。
この時点でイベント・ログに表示されるイベントは、選択した時間間隔で発生されたイベントであり、他との関連はありません。図3-10では、JDBCイベントおよびJVMソケット・イベントのみの選択によるJDBCアクティビティのドリルダウンを示します。選択した時間間隔でJDBCイベントのフローと同時に発生するソケット・アクティビティを表示するために、イベント・ログが更新され、時系列順に表示されます。
オペレーティング・システムのtemp
ディレクトリに作成される一時JFRファイルは、JRockitによって直接管理されます。WLDFはこれらのファイルを制御しません。(デフォルトでは、JFRレコーディングに関連するWLDFの一時ファイルはDOMAIN_NAME
\servers\
SERVER_NAME
/server/logs/diagnostic_images
ディレクトリに格納されます。)
ただし、JRockitがその一時ファイルを格納する場所は、JFR起動時に次のコマンドライン・オプションを使用して変更できます。ここで、パス
は優先場所を示します。
-XX:FlightRecorderOptions=repository=path
JFR構成設定の詳細は、『Oracle JRockitフライト・レコーダ・ランタイム・ガイド』のフライト・レコーダの起動に関する項を参照してください。