ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用
12cリリース1(12.1.1)
B65916-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

3 Oracle JRockitフライト・レコーダと連携したWLDFの使用

この章では、WebLogic診断フレームワーク(WLDF)とJRockitフライト・レコーダとの連携で得られる統合点について説明します。ランタイムまたはインシデント後処理の分析に対して共通データ・セットに含めるためにWebLogic Serverイベントをオプションでフライト・レコーダに伝播できます。また、フライト記録データはWLDF診断イメージ・キャプチャにも含まれています。それにより、WLDF監視ルールに基づいてフライト記録スナップショットを取得できます。この一連の機能により、実行中のJVMコンポーネントとFusion Middlewareコンポーネントの両方について、単一のビューで実行時システム情報をキャプチャおよび分析できます。

この章では、この統合をWebLogic Serverに基づく本番システムに対しての包括的なパフォーマンス分析および診断ファウンデーションに提供する方法を表示する共通使用方法のシナリオについて説明します。

この章の内容は以下のとおりです。

Oracle JRockitフライト・レコーダについて

WebLogic Serverインストール・プログラムで利用可能なOracle JRockitのバージョンには、JRockitフライト・レコーダ(JFR)と呼ばれるコンポーネント、パフォーマンス監視およびプロファイリング・ツールが含まれています。JFRは、診断情報を継続的に記録して、システム・クラッシュなどの突発障害でもそれを利用可能にします。

JFRは、必要に応じてアクセスできるフライト記録またはJFRファイルと呼ばれる診断およびプロファイリング・データのバッファを保持します。図3-1で示されているように、フライト記録機能は、新しいデータが継続的に追加され、古いデータが削除される航空機の「ブラック・ボックス」と同じ方法で動作します。

図3-1 循環フライト記録のバッファ

図3-1の説明が続きます
「図3-1 循環フライト記録のバッファ」の説明

JFRフライト記録の詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダ・データ・フローに関する項を参照してください。

イベントに対して生成されたシステム実行フローの詳細を検討するには、JFRファイルをいつでも分析できます。JFRファイルのデータには、JVMからのイベントおよびWebLogic ServerとOracle動的モニター・システム(DMS)などの他のイベント・プロデューサが含まれています。

JFRの記録を有効にする場合およびJFRでキャプチャするWebLogic Server診断が発生するようにWLDFを構成した場合に生じる追加処理オーバーヘッドの量は最小限です。これは、特に最大値を追加する本番環境でフルタイム・ベースで使用できます。

JFRには、次の重要な利点があります。

JFRの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダの概要に関する項を参照してください。

JRockitフライト・レコーダとのWLDF統合の主な機能

JFRとの統合を利用するために、WLDFで提供される主な機能には次のものが含まれます。

JRockitフライト・レコーダのユース・ケース

この項では、重要な診断に関する問題を解決するために役に立つJRockitフライト・レコーダを使用した3つの一般的なビジネス・ケースが要約されています。

これらのシナリオの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のフライト・レコーダ・ユース・ケースに関する項を参照してください。

クリティカル障害の診断 - 「ブラック・ボックス」

「破滅的な」失敗が発生した場合、フライト・レコーダ・バッファの内容は、航空機のブラック・ボックスと類似した方法で問題発生後の解析として使用できます。アプリケーションの終了によって生じるJVMクラッシュまたはメモリー不足エラー(OOME)はこのような失敗の例です。

これらの状況では、フライト・レコードには、障害の原因を判別するのに役に立つ次の情報が含まれます。

  • クラッシュのときのフライト・レコーダの構成のメタデータを含むJVMコア・ダンプ。さらに、フライト・レコーダが永続記憶城のモードで実行している場合、データ・バッファ・ファイルには、ある程度のデータが含まれている可能性があります。

  • 障害が発生する前のWLDFによってキャプチャされたWebLogic Serverイベント。

永続モードで実行している場合、JFRはメモリーとディスクの組合せを使用して、そのバッファを格納します。最新のデータはメモリーに格納され、「古く」なるとディスクにフラッシュされます。このモードでは、停電または同様の大惨事が起こった場合もディスク上のデータは使用できます。最新のデータのみ使用できなくなりますん(たとえば、ディスクにフラッシュされていないデータ)。テキスト・ダンプ・ファイルには、適用可能な場合データ・バッファへのパスを含む大惨事の場合のフライト・レコーダ構成のメタデータがあります。永続モードの詳細は、『Oracle JRockit Flight Recorderラン・タイム・ガイド』のオペレーティング・モードに関する項を参照してください。

パフォーマンス・テストまたは本番の場合のプロファイリング

プロファイリングでは、特定時点で始まるデータがキャプチャされます。これによって、その時点の後に発生したイベントを分析することができます。次の項で説明するRADARとは対照的に、プロファイリングには、これより前のデータではなく、特定のイベントが発生した後に発生した診断データの分析が含まれます。

JRockitフライト・レコーダでのプロファイリングにより、ロック競合の詳細分析および待機時間の原因を実行する機能を最適化できます。

リアルタイム・アプリケーション診断および報告(RADAR)

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の使用例について説明します。

JRockitフライト記録ファイルの取得

診断イメージ・キャプチャ自体は、異なるサーバー・サブシステムで作成された個々のイメージを含む単一のJFRファイルです。JFRファイルがある場合、それはファイルFlightRecording.jfrとして診断イメージに含まれています。

診断イメージ・キャプチャは、たとえばWebLogic Server管理コンソール、WLSTまたはJMXアプリケーションなどのオンデマンドで生成できます。または、イメージ通知の結果として生成できます。診断イメージ・キャプチャの生成方法および作成される場所の構成方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの診断イメージの構成と取得に関する項を参照してください。

JFRファイルの内容を表示するには、まず初めに、第5章「診断イメージの構成と取得」の説明に従って、診断イメージ・キャプチャからJFRファイルを抽出する必要があります。抽出したJFRファイルは、JRockit Mission Controlでその内容を表示できます。

たとえば、診断イメージ・ファイルからJFRファイルを取得して、ローカル・ディレクトリに保存するWLSTスクリプトは、「サンプル: 診断イメージ・キャプチャからのJFRファイルの取得」を参照してください。

JRockit Mission Control内のフライト・レコーダ・データの分析

JRockit Mission Controlを使用して、診断イメージ・キャプチャから抽出した後にフライト・レコーダ・ファイルの内容を確認します。次の項では、WebLogic ServerイベントのWLDFのみならずJRockit JVMなどの他のすべての使用可能なイベント・プロデューサから生成された診断データにドリルダウンするためにツール・サポートの大部分を指定するJRockit Mission Controlグラフィカル・ユーザー・インタフェースの機能の一部について説明します。

JRockit Mission Controlインタフェースの詳細は、Oracle JRockit Mission Controlオンライン・ヘルプを参照してください。「JRockit Mission Controlクライアントの概要」も参照してください。

JFRグラフィカル・ユーザー・インタフェース

JRockit Mission ControlにはJRockitフライト・レコーダ・グラフィカル・ユーザー・インタフェースが含まれており、これによりOracle JRockitのフライト・レコーダ対応バージョンを実行しているユーザーはJVMの記録、現在の記録設定およびランタイム・パラメータを表示できます。JFRインタフェースには、イベント・プロデューサおよびタイプ、イベント・ロギングおよびグラフ化、スレッドによるイベント、イベント・スタック・トレースおよびイベント・ヒストグラムなどのJFRファイルに記録されたイベント情報に直接アクセスできるイベント・タイプ・ビューが含まれています。

JFRインタフェース内の「概要」タブを使用して、ボトルネックまたはシステム状態不良の他の原因を表す動作を公開できるため、システムの一般的な状態を分析できます。図3-2には、イベント・タイプ・ビュー内の「概要」タブの例を示します。

図3-2で示した情報について次の点に注意してください。

  • 「イベント」タブ・グループのアイコンを選択して、「イベント・タイプ」ビューが表示されます。

  • フライト・レコーダ・ファイル名が「概要」タブの上部に表示されます。JFRは常にFlightRecording.jfrと名付けられており、診断イメージ・キャプチャからダウンロードした後、これをわかりやすい名前に変更すると便利です。

  • 左側の「イベント・タイプ」ブラウザは、記録にある使用可能なイベントを表示するツリーです。これは「イベント」タブ・グループとともに機能し、関心のあるイベントまたはイベントのグループを選択し、それについて詳細な情報を取得できます。

    「イベント・タイプ」ブラウザでエントリの選択または選択解除すると、「概要」タブで表示される情報が動的にフィルタされます。たとえば、WebLogic Serverのみ選択すると、すべての非WebLogicイベント・プロデューサがフィルタされ除去されます。

  • 範囲ナビゲータは、「概要」タブ・タイトルの下に表示されるグラフであり、選択したタブで表示されるデータに関連する記録のすべてのイベントを表示するタイムラインです。表示されたデータの範囲を調整するためにボタン・セットがあります。これによって、フライト・レコーダ・データの詳細へのドリルダウン処理が簡略化されます。

  • 「プロデューサ」セクションでは、表示されているデータが発生した各イベント・プロデューサを識別されます。各プロデューサにメトリックがあり、表示されたイベント・データの総数セットの一部として各プロデューサによって生成されたアクティビティのボリュームを示します。

  • 「イベント・タイプ」セクションでは、各イベント用の主要なメトリック・データとともに、「概要」タブに表示されるすべてのイベントがリストされます。

図3-2 JRockit Mission Control内のJRockitフライト・レコーダ・ファイルの概要ページの例

図3-2の説明が続きます
「図3-2 JRockit Mission Control内のJRockitフライト・レコーダ・ファイルの概要ページの例」の説明

実行フローの分析 - サンプル・ウォークスルー

この項では、WebLogic ServerでホストされるWebアプリケーション内の特定のリクエストに関連付けられたイベント・アクティビティを識別するために開発者およびサポート・エンジニアが使用する手順の例を示します。この例は、パフォーマンスの問題を診断する特定の方法をお薦めするものではありませんが、パフォーマンスの問題を検索して分析するプロセスを簡単にすることのできるJFRグラフィカル・ユーザー・インタフェースの使用方法を簡単に示します。

この項では、次の例を説明します。

製品サブコンポーネントのイベント・データの表示

JRockit Mission Controlを起動してJFRファイルを開く場合、分析する特定のイベントを迅速に選択するよう「イベント・タイプ」ビューを使用できます。「イベント・タイプ」ブラウザ(イベント・タイプ・ビューで使用可能)のアイテムを選択および選択解除することで、選択したイベント・タイプのみの情報を表示するようにJFRグラフィカル・ユーザー・インタフェースで表示される情報が迅速に変更されます。

図3-3は、サーブレット・イベント・タイプのみを選択している状態でのイベント・タイプ・ブラウザを示します。

図3-3 イベント・タイプ・ブラウザ

図3-3の説明が続きます
「図3-3 イベント・タイプ・ブラウザ」の説明

詳細を示すためのイベント・ログの表示

1つ以上のイベント・タイプによって記録されるイベントの詳細を表示するには、JFRグラフィカル・ユーザー・インタフェースの下部にある「ログ」タブを選択します。サーブレット・イベント・タイプの「ログ」タブの例を、図3-4に示しています。

図3-4 サーブレット・イベント・ログ

図3-4の説明が続きます
「図3-4 サーブレット・イベント・ログ」の説明

「ログ」タブを使用する場合は、次のようにイベントの詳細を表示できます。

  • 「イベント・ログ」表の個々の列の先頭をクリックして、イベントのソート順を変更できます。たとえば、「期間」列をクリックすると、実行に最長時間がかかったイベントを迅速に識別できます。

  • 「イベント・ログ」表でイベントを選択すると、「イベント属性」表ではそのイベントの詳細が表示されます。たとえば、図3-4では、次の属性を示します。

    • イベントの開始時間、終了時間および継続時間

    • サブーレットでリクエストを発行したユーザーのID

    • 呼び出されたサーブレットのメソッド、クラス名およびURI

    • 実行コンテキストのID (ECID)

異なるイベント・タイプには異なる属性があります。たとえば、JDBCイベントの場合、SQL文、使用したJDBC接続およびこれを呼び出したスタックを表示する属性をスクロールできます。インタフェースによって、詳細に分析できる予期しない動作を簡単にスキャンできます。


注意:

ECIDの値は一意の識別子で、各イベントを同一のリクエスト実行フローの一部として相関させるために使用できます。たとえば、「操作セットの分析による実行フローのトラキング」に示されているように、特定のリクエストに関連すると識別されたイベントは、通常は同じECID値を持ちます。しかし、ECID文字列自体の形式は変更しやすい内部メカニズムによって決定されるため、この形式への依存関係を作成したり構成したりしないでください。


操作セットの分析による実行フローのトラキング

JRockit Mission Control内のJFRグラフィカル・ユーザー・インタフェースでは、特定のイベントの結果として発生したシステム・アクティビティのランタイム・トレイルを分析できます。この例では、まず操作セットが定義され、ランタイム・トレイルが分析されます。操作セットは、JRockit Mission Controlで動作するために選択するイベントのいずれかのセットです。

この項に示された例では、操作セットが、図3-5で示した「イベント・ログ」表で選択したサーブレット呼出しイベントとして、同じ実行コンテキストID (ECID)属性を持つイベントのために作成されます。操作セットは、そのサーブレット呼出しの結果とした実行フローを参照するために分析されます。(異なる属性にも一致するイベントを含めるようにこの操作セットを拡張できます。たとえば、特定のSQL文を含みますが、必ずしも同じECIDではないイベント)。

図3-5 Execution Context ID (ECID)で定義した操作セット

図3-5の説明が続きます
「図3-5 Execution Context ID (ECID)で定義した操作セット」の説明

この操作セットは、「イベント・ログ」内の任意のイベントを右クリックし、「操作セット」>一致するECIDの追加>「ecid」の順に選択して定義します。図3-6を参照してください。.

図3-6 一致するECIDによる操作セットの定義

図3-6の説明が続きます
「図3-6 一致するECIDによる操作セットの定義」の説明

操作セットは、さらに、図3-7に示すイベント・ログ表上の「操作セットのみを表示」を選択して表示されます。操作セットが、範囲ナビゲータでどのように示されているかに注意してください。

図3-7 操作セットの表示

図3-7の説明が続きます
「図3-7 操作セットの表示」の説明

サーブレットの呼び出しイベントを生成したリクエストの結果表示された実行フローの実行時トレイルは、追加イベント・タイプを含めて表示できます。たとえば、図3-8では、「イベント・タイプ」ブラウザを使用してすべてのWebLogic Serverイベント・タイプが追加され、イベントが発生順にリストされているときの操作セットを示します。(「開始時間」列の先頭を選択してイベントを発生順にソートできます。)

図3-8 操作セットへのすべてのWebLogic Serverイベントの追加

図3-8の説明が続きます
「図3-8 操作セットへのすべてのWebLogic Serverイベントの追加」の説明

この例では、イベント・ログに表示される実行フローの一部が示されています。

  1. サーブレットのURIが呼び出されます。

  2. サーブレットはEJBを使用するため、データベースへのアクセスが必要となります。

  3. JDBC接続を取得し、トランザクションが開始されます。

操作セットの展開および相関診断データの表示

操作セットは、実行フローの時間間隔を制約し、追加プロデューサからの相関イベントを追加して、さらに分析できます。表示されたイベントために時間間隔を制約することにより、操作セットと同時に発生したイベント・ログにイベントを追加できます。これよって、パフォーマンスの問題を診断するために役に立つ実行コンテキストの詳細を追加できます。

範囲ナビゲータで範囲選択バーを選択して時間間隔を制約することができます。このバーをポインタでグラブし、内側または外側にドラッグして、イベント・ログに表示されるイベントの範囲を変更することができます。図3-9で示すように、ナビゲータのいずれかの先端上マウスポインタを乗せると、範囲選択バーがアクティブ化されます。

図3-9 範囲ナビゲータの選択バー

図3-9の説明が続きます
「図3-9 範囲ナビゲータの選択バー」の説明

JRockit JVM,などの追加プロデューサからのイベントは「イベント・タイプ」ブラウザから選択できます。JVMイベントにはECID属性がないため、そのイベントを操作セットのWLDFイベントに含めることはできません。したがって、JVMイベントを表示するには、「操作セットのみを表示」の選択を解除する必要があります。

この時点でイベント・ログに表示されるイベントは、選択した時間間隔で発生されたイベントであり、他との関連はありません。図3-10では、JDBCイベントおよびJVMソケット・イベントのみの選択によるJDBCアクティビティのドリルダウンを示します。選択した時間間隔でJDBCイベントのフローと同時に発生するソケット・アクティビティを表示するために、イベント・ログが更新され、時系列順に表示されます。

図3-10 JDBCイベント・ログへのJVMイベントの追加

図3-10の説明が続きます
「図3-10 JDBCイベント・ログへのJVMイベントの追加」の説明

一時JFRファイルの場所の変更

オペレーティング・システムのtempディレクトリに作成される一時JFRファイルは、JRockitによって直接管理されます。WLDFはこれらのファイルを制御しません。(デフォルトでは、JFRレコーディングに関連するWLDFの一時ファイルはDOMAIN_NAME\servers\SERVER_NAME/server/logs/diagnostic_imagesディレクトリに格納されます。)

ただし、JRockitがその一時ファイルを格納する場所は、JFR起動時に次のコマンドライン・オプションを使用して変更できます。ここで、パスは優先場所を示します。

-XX:FlightRecorderOptions=repository=path

JFR構成設定の詳細は、『Oracle JRockitフライト・レコーダ・ランタイム・ガイド』フライト・レコーダの起動に関する項を参照してください。