12 実行情報の詳細の取得

ここでは、Enterprise Manager JVMビューを使用して、失敗する操作または問題のある操作の実行情報の詳細を取得する方法を説明します。

RUEIで提供されるビューではパフォーマンス問題を十分に把握できない場合があります。疑いのあるサービスがJava仮想マシンを実行している場合、そうした問題の根本原因を診断できるように、より深い、詳細な実行情報を入手することができます。

JVM診断は、実行中のJVMプロセスの詳細を表示できるようにするツールです。これらの詳細には、スレッドを実行するためのスタック・フレーム、スレッド状態に関する情報、メソッド実行の頻度やコストに関する集計情報、Javaおよびデータベース・ロックの保持に関する情報、Javaヒープのオブジェクトに関する詳細などがあります。このツールを使用して、モニター対象の各JVMの履歴データにアクセスすることもできます。

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

RUEIからこれらのいずれかのビューを呼び出してパフォーマンスの分析を進める場合、Enterprise Managerは、選択されたRUEIページ・オブジェクト操作インスタンスの時間間隔において生成されたデータを選択して表示します。表示されたデータに対して表示される可能性のある追加情報の1つに、実行コンテキストID (ECID)があります。

ECIDは、Oracleテクノロジ・スタックでコンポーネントに対するリクエストを追跡するために使用される識別子です。ECIDの作成と伝播により、コンポーネント間でのコンテキストおよび診断データの共有ができるようになります。また、ECIDを使用して、Java仮想マシンで実行中のスレッドを特定することもできます。ECIDが利用できる場合、RUEIに表示されるデータを「JVM診断」ビューまたは「インスタンス診断リクエスト」ビューに表示されるデータに相関させることができます。詳細は、ECIDを使用してリクエストを追跡するを参照してください。

RUEIからJVMビューにアクセスするには、事前の設定作業が必要になります。詳細は、エンドツーエンド・モニタリングの設定を参照してください。

JVMDは、1つの章では説明できないほど豊富な機能を提供しています。使用法の詳細は、JVMDを説明している本書の各章を参照してください。

JVM診断の使用

Java仮想マシン診断(JVMD)の情報には、次のいずれかの方法でアクセスします。

  • サービス、エンドポイント、論理操作、物理操作、またはトランザクションの「メッセージ・ログ」タブで、行を右クリックし、コンテキスト・メニューから「JVMDにドリルダウン」を選択します。

  • 「トランザクション・インスタンス・インスペクタ」で、操作を(グラフまたはグリッド・ビューで)右クリックし、コンテキスト・メニューから「JVMDにドリルダウン」を選択します。

  • 「メッセージ・ログの検索」ツールで、メッセージ行を右クリックし、コンテキスト・メニューから「JVMDにドリルダウン」を選択します。

Enterprise Managerでは、「ビジネス・アプリケーション」のトランザクションを選択し、トランザクション・サマリー・ページを開くことにより、トランザクション操作のJVMD情報にアクセスできます。続いて、次のいずれかを実行します。

  • トポロジのダイアグラムでいずれかの操作ノードを右クリックし、コンテキスト・メニューからJVMD診断を選択します。

  • 操作表でいずれかの操作行を右クリックし、コンテキスト・メニューからJVMD診断を選択します。

いずれの場合も新しいウィンドウが開き、「JVMパフォーマンス診断」ビューが表示されます。VMが複数台ある場合は、VMグループ・ターゲットと、そのグループの集計情報がJVMDに表示されます。図12-1は、JVMパフォーマンス診断ビューを示しています。

図12-1 JVMパフォーマンス診断ビュー


この図はテキストで説明します。

このビューは、選択した操作が実行中のJVMのサマリー詳細を表示します。「サーバーの状態」チャート、「状態別のアクティブ・スレッド」、「上位メソッド」、「上位リクエスト」、「上位DBWaitイベント」、「上位SQL」および「上位データベース」が表示されます。様々な基準を指定して、表示されるデータをフィルタ処理できます。

「スレッド」タブをクリックすると、「スレッドの状態遷移」チャートが表示されます。このチャートには、選択した期間内でスレッドがある状態から別の状態にどのように遷移したかが表示されます。「スレッドの状態遷移」チャートの棒グラフをクリックすると「サンプル・アナライザ」が表示され、そのスレッドに対する詳細分析がスレッド上に表示されます。

「ライブ・スレッド分析」コントロールをクリックすると、JVMで実行中のすべてのスレッドが表示されます。スレッドを1つクリックすると、そのスレッドに関する追加情報が表示されます。

インスタンス診断リクエストの使用

「インスタンス診断リクエスト」(RID)ビューには、RUEIからアクセスできます。

  • RUEIスタンドアロン・アプリケーションからは、表示されるデータを関連付けるためにECIDが使用されます。RIDには、「RUEIセッション診断」ビューでレコードを右クリックしてアクセスできます。

  • 「RUEIセッション診断」(EMのオブジェクト・ビュー)から、Oracleロゴのアイコンを右クリックするとRIDにアクセスできます。(このアイコンはECIDがある場合にのみ表示されます)

ノート:

「インスタンス診断リクエスト」(RID)ビューにアクセスする前に、Java仮想マシン診断(JVMD)がインストールされていて、アクティブになっている必要があります。

Figure 12-2は、あるECIDの「インスタンス診断リクエスト」ビューの一部を示しています。

Figure 12-2 「インスタンス診断リクエスト」ビュー


テキストで説明されている図。

「JVM」パネルには、リクエストを実行したすべてのJVMがリストされます。JVMを1つ選択すると、次の情報が表示されます。

  • RID: 関係IDは、タスク・ツリー内の各タスクの場所の記述に順番に番号が付けられたものです。

  • リクエストの開始時間および期間。

  • ステップ名: リクエストの個々のステップ。たとえば、最初のステップがjspで、2番目のステップがEJBで、3番目のステップがDBの場合があります。

  • JVMごとのCPU使用率

  • GCメジャー/GCマイナーは、メジャーおよびマイナーのガベージ・コレクションに追加されたオブジェクトの数を示します。

このリストからJVMを選択すると、「JVMインスタンス分析」パネルの「インスタンス・サンプル」タブに棒グラフが表示されます。このグラフは、リクエストの持続時間内に取得された各JVMのスナップショットでのスレッドの状態を示します。表示の右にあるキーの色で、実行可能、ロック、I/O待機、DB待機、ネットワーク待機、RMI待機などの様々なスレッドの状態を表します。そのスレッドの詳細を表示するには、グラフの上にマウスを置きます。

指定した期間に、選択したJVMに対して収集された集計メトリックを表示するには、「リクエスト集計」タブをクリックします。図12-3はタブの例を示しています。

あるメトリック・タイプの測定値を表示するには、図のように「メトリック」ドロップ・ダウン・メニューから表示するタイプを選択します。

図12-3 RID: 「リクエスト集計」タブ


テキストで説明されている図。