ヘッダーをスキップ
Oracle® Enterprise Manager Oracle Fusion Middleware Managementスタート・ガイド
11g リリース1(11.1.0.1)
B61025-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

10 JVM Diagnosticsの使用方法

この章では、JVM Diagnosticsを使用して実行できる各種のタスクについて説明します。この章の内容は次のとおりです。

10.1 「JVM診断」ページへのアクセス

JVM Diagnosticsマネージャのインストールが完了すると、機能を使い始めることができます。Enterprise Managerの「ミドルウェア」タブに移動して、WebLogicターゲットをクリックします。「WebLogicドメイン」ホーム・ページが表示されます。

図10-1 「WebLogicドメイン」ページ

「WebLogicドメイン」ページ

JVM Diagnosticsの使用を開始するには、「WebLogicドメイン」ドロップダウン・メニューから「JVM診断」オプションを選択し、適切なオプションを選択します。

10.2 ドメイン(プール)の「サマリー」および「詳細」ページの表示

このページでは、選択したWebLogicドメインでJVMプールのサマリーおよび詳細情報を表示できます。ドメインの2つの期間におけるJVMプール・データも比較できます。このページを表示するには、「JVM診断」メニューから「サマリー」オプションをクリックします。

図10-2 ドメインの「サマリー」ページ

ドメインの「サマリー」ページ

このページには「サマリー」および「詳細」のタブがあります。「サマリー」タブでは、サーバー状態のグラフや、「上位メソッド」および「上位リクエスト」のリストなどのJVMプールのサマリー詳細が表示されます。

「詳細」タブをクリックすると、「詳細」ページが表示されます。

図10-3 ドメインの「詳細」ページ

ドメインの「詳細」ページ

サーバー状態のグラフや、「上位メソッド」、「上位リクエスト」、「上位DBStates」および「上位SQL」のリストなどを参照できます。表示されたデータは「メソッド名」、「JVM名」、「スレッド状態」、「DBState」などの様々な基準を指定してフィルタ処理できます。プールでの各JVMのサーバー状態のグラフも表示できます。

10.3 ドメイン(プール)のスレッドの「リアルタイム分析」ページの表示

このページには、選択したドメインのすべてのJVMのリアルタイム・データが表示されます。このページを表示するには、「JVM診断」メニューから「スレッド」、続いて「リアルタイム分析」をクリックします。

図10-4 ドメインのスレッドの「リアルタイム分析」ページ

ドメインのスレッドの「リアルタイム分析」ページ

このページの最初の表には、JVMおよび各JVMの現在のステータスのリストが表示されます。CPU使用率、メモリー、データベース・レスポンスを待機しているスレッドの数、同期ロックを待機しているスレッドの数や、その他の詳細などのJVMの現在のアクティビティが表示されます。

「JVM」列で「JVM」リンクをクリックすると、そのJVMのスレッドのリストが表示されます。2つのグラフも表示され、1番目のグラフはJVMのアクティブ・スレッド、2番目のグラフはJVMのヒープ・ステータスを示しています。

10.4 JVMの「サマリー」および「詳細」ページの表示

このページには特定のJVMのサマリーおよび詳細情報が表示されます。このページを表示するには、「WebLogicドメイン」ホーム・ページに移動し、左パネルからJVMを選択して、メニューから「JVM診断」、続いて「サマリー」オプションをクリックします。

図10-5 JVMの「サマリー」ページ

JVMの「サマリー」ページ

このページには「サマリー」および「詳細」のタブがあります。「サマリー」タブでは、サーバー状態のグラフや、「上位メソッド」および「上位リクエスト」のグラフなどのJVMプールのサマリー詳細が表示されます。「詳細」タブをクリックすると、「詳細」ページが表示されます。サーバー状態のグラフや、「状態別のアクティブ・スレッド」、「上位メソッド」、「上位リクエスト」、「上位DBStates」および「上位SQL」のリストなどを参照できます。表示されたデータは「メソッド名」、「JVM名」、「スレッド状態」、「DBState」などの様々な基準を指定してフィルタ処理できます。

10.5 JVMのスレッドの「リアルタイム分析」ページの表示

このページには選択したJVMのリアルタイム・データが表示されます。このページを表示するには、「WebLogicドメイン」ホーム・ページに移動し、左パネルからJVMを選択して「JVM診断」をクリックします。「JVM診断」メニューから、「スレッド」、続いて「リアルタイム分析」をクリックします。

図10-6 JVMのスレッドの「リアルタイム分析」ページ

JVMの「リアルタイム分析」ページ

このページには次の項目が表示されます。

10.6 JVMのメモリーの「リアルタイム分析」ページの表示

このページには、JVMヒープのすべてのオブジェクトのリアルタイム編成が表示されます。このページに移動するには、「ミドルウェア」ページで「JVM診断」リンクをクリックします。左パネルで「すべて」をクリックすると、JVMヒープのすべてのオブジェクトのリアルタイム・メモリー分析が実行されます。

10.7 「設定」ページの使用方法

この項では「設定」メニューのページについて説明します。このページにアクセスするには、「JVM診断」メニューから「設定」オプションをクリックします。

10.7.1 「コンソール設定」ページ

このページは、コンソール・パラメータの設定と消失パスワードのリセットに使用されます。このページでは次のパラメータを指定できます。

  • コンソール・ログ・レベル、階層間ログ・レベル: コンソール・ログ・メッセージの冗長性。Oracle Supportでアドバイスされた場合のみ、値を増やします。

  • エージェント・リクエスト・タイムアウト、エージェント・ループ・リクエスト・タイムアウト: 監視されているJVMが極端にビジーで、コンソールがレスポンスを待機してタイムアウトおよび切断する場合に、値を増やします。

  • Javaタブのログインが必要: 他(非設定タブ)へのアクセスを制限する場合にこのチェックボックスを有効化します。ユーザーは(「ユーザー」画面で作成される)有効なアカウントによってログインする必要があり、すべての非設定画面へのアクセス権があります。設定画面はADMINユーザーのみがアクセスできます。

  • 監視有効化: このチェックボックスが有効になっていると、選択したプールに属すJVMがアクティブ・リクエストに対して定期的にポーリングされます。このデータはNOC上で、最後の90秒/24時間のグラフで使用できます。

  • 電子メール・アラート: しきい値違反に基づく電子メール・アラート(監視の有効化が必要)。

  • アラートのSNMPホスト: アラートが送信されるSNMPホスト。

「保存」をクリックして新規パラメータを設定するか、「リセット」をクリックして既存パラメータを使用します。

10.7.2 JVMプール情報

一連のJVMをJVMプールにグループ化することで、すべての関連JVMにおける監視情報を単一のビューで提供できます。この表にはシステム内のすべてのJVMプールが表示されます。すべての使用可能プールの表示、既存プールの削除または新規プールの追加ができます。「デフォルト」および「その他」のプールは削除できません。ユーザーが定義したプールは削除できます。

各行には、ポーリングがプールに対して現在有効かどうか、ポーリング間隔、および電子メール通知の受信者が表示されます。「ポーリング有効」フラグがYに設定されていると、このプールに属すJVMがアクティブ・リクエストに対してポーリング間隔に基づき定期的にポーリングされます。「編集」アイコンをクリックしてJVMプールを編集するか、「新規プール」をクリックして新規JVMプールを追加します。

10.7.2.1 JVMプールの更新

JVMプールを更新するには、「JVMプールの表示」ページで「編集」アイコンをクリックします。「JVMプールの編集」ページでは、ポーリング間隔の指定、このプールの監視の有効化、および指定リストへの電子メール・アラートの送信を実行できます。

10.7.2.2 プールしきい値の更新

しきい値違反はR(赤)またはY(黄)の「レベル」になります。「メトリック」は監視されている属性で、「しきい値」はメトリックの比較の対象になる値です。違反は、最小サンプル数が監視された後にしきい値を超えると発生します。しきい値の単位は、マシンCPU(CPU)、JVM CPU(CPU)のCPU使用率(%)、ヒープのヒープ使用率(%)、その他の該当の状態のスレッド数です。50%を超えるサンプルについてDBで3から5個のスレッドがアクティブの場合はDBのアンバー(Y)アラートが発生し、50%を超えるサンプルについてDB待機状態で6個以上のスレッドがアクティブの場合はDBのレッド・アラートが発生します。

アクションURLは、しきい値違反が発生したときに呼び出されるURLです。これには内部URLと外部URLが含まれます。アクションURLはリモート・システム上の任意の有効なURLである可能性があります。このURLは、しきい値違反に反応して特定のスレッド、すべてのアクティブ・スレッド、またはダンプ・ヒープのトレースに使用できます。

アクションURLはブラウザから呼び出されるため、有効なURLである必要があります。未指定の場合、traceThreadおよびheapdumpのデフォルト・パラメータがURLに追加されます。アクションURLが現在のコンソール・ホストとは異なるホストを指定する場合、「コンソール設定」ページに移動して「Javaタブのログインが必要」チェックボックスの選択を解除する必要があります。

スレッドのトレースに対するサンプルURLテンプレートは次のとおりです。

http://localhost/jvmTraceActive.jsp?traceThread=allactive&JVM_THREAD_ID=&JVM_ID=1&JVM_MACHINE=machine_name&JVM_PORT=8080&pollInterval=50&pollDuration=10&samplesfilename=traceactive&detailsfile=on

各要素の説明は次のとおりです。

  • traceThreadはトレースされるスレッドの名前です。すべてのアクティブ・スレッドをトレースする場合、値をtraceThread=allactiveのように指定します。これは、「すべてのスレッドの表示」ページの「スレッド」列の値です。

  • JVM_THREAD_IDはトレースされるスレッドのIDです。すべてのアクティブ・スレッドをトレースする場合、またはtraceThread=allactiveである場合、JVM_THREAD_IDパラメータは空白である必要があります。これは、「すべてのスレッドの表示」ページのOS PID列で指定される値です。

  • JVM_IDJVM_MACHINEJVM_PORTは、トレースされるスレッドが実行中のJVMエージェントのID、マシン名、およびポート番号です。たとえば、「すべてのスレッドの表示」ページの最上部に表示されるテキストがName: machine_name:8080 ID: 1: Linux-2.6.9-55.0.0.0.2.EL: Sun Microsystems Inc.: 1.6.0_07の場合、次のようになります。

    • machine_nameJVM_MACHINEです。

    • 8080JVM_PORTです。

    • 1JVM_IDです(JVM_IDパラメータがURLで指定されていない場合、コンソールで自動的に付加されます)。

  • PollIntervalは連続するサンプル間の時間間隔(ミリ秒)です。デフォルト値は50です。

  • PollDurationはトレースの期間(秒)です。デフォルト値は10です。

  • Samplesfilenameは、コンソール・マシンで作成されたトレース・サンプル・ファイル名の接頭辞です。デフォルト値はtraceactiveで、作成される各トレース・ファイルの接尾辞として一意の識別子が追加されます。

  • Detailsfileは、状態以外のサンプル・スレッド・スタックです。完全なスレッドの詳細が必要な場合、この値はOnに設定する必要があります。デフォルトはOnです。

ヒープ・ダンプのサンプルURLは次のとおりです。

http://localhost/jvmHeapDump.jsp?JVM_ID=1&JVM_MACHINE=machine_name&JVM_PORT=8080&JVM_DUMP_FILE=heapdump <http://localhost/jvmHeapDump.jsp?JVM_ID=1&JVM_MACHINE=machine_name&JVM_PORT=8080&JVM_DUMP_FILE=heapdump>

次のパラメータがヒープ・ダンプのURLに必要です。

  • JVM_IDJVM_MACHINEおよびJVM_PORTは、スレッドのトレースのテンプレートに指定されたものと同じパラメータです。

  • JVM_DUMP_FILEは、エージェント上のヒープ・ダンプ・ファイル名の接頭辞です。各ヒープ・ダンプ・ファイルの接尾辞として一意の識別子が追加されます。

10.7.3 「データベース」ページ

この画面を使用すると、現在、監視中/プロファイリング中のデータベースに関する情報の表示や、同じデータベースに対する新規データベースの追加を行うことができます。「編集」アイコンをクリックして既存データベースを編集するか、「新規データベースの登録」をクリックして新規データベースを登録します。

10.7.4 「JVMとマネージャ」ページ

このページは、コンソールに接続されているすべてのJVMの一覧を示します。登録されているすべてのJVM DiagnosticsマネージャがIPアドレス、ポート番号、ビルド・バージョンおよびステータスとともにこのページに一覧表示されます。「編集」アイコンを使用してJVMパラメータを編集したり、コンソールにもう接続されない古いJVMを削除することができます。

「JVM情報の編集」ページでは、JVMの別のプールへの割当て、JVMのログ・レベルの変更(Supportで推奨されている場合)、またはヒープ・スナップショットがダンプされる一時ディレクトリの変更を実行できます。

10.7.5 監視

ポーリングを有効にしてJVMプールを一度更新すると、そのプール内のJVMを監視できるようになります。監視を開始するには、上にある「監視の開始」リンクをクリックします。この操作は「コンソール設定」画面でも可能です。プール・プロパティを更新することで、プールの監視の有効化または無効化や、ポーリング間隔の変更ができます。

スレッドをアイドル・スレッド・ルールに追加すると、そのスレッドをアイドルとしてマークできます。アイドルとしてマークされているスレッドはすべて監視されません。「新規ルール」をクリックすると、新規のアイドル・スレッド・ルールを作成できます。次のような「ルール・タイプ」があります。

  • 監視(ロック待機中): ロックされているすべてのスレッドを無視する場合は、このタイプを選択します。

  • 現在のコール: 選択した関数へのコールを生成しているすべてのスレッドを無視する場合は、このタイプを選択します。

「ルール値」にはクラス名、メソッドが含まれ、クラス+メソッドが次に続く必要があります。「現在のコール」の例はweblogic.socket.PosixSocketMuxer->processSocketsです。「監視(ロック待機中)」の例はweblogic.socket.PosixSocketMuxer$1です。

アイドル・スレッド・ルールで指定された基準に一致するスレッドはすべて、「アクティブ・スレッドの表示」画面に表示されません。

10.7.6 「トレース・ファイル」ページ

このページは次の操作に使用できます。

  • 実行していたトレースからトレース・ファイルを削除します。

  • 別のコンソールからトレース・ファイルをロードします。トレース・ファイルをこの画面で表示するには、ファイルをjamserv/traceディレクトリに移動する必要があります。

10.7.7 「エージェントのダウンロード」ページ

このページでは、Javaエージェント、JVM Diagnosticsマネージャ、データベース・エージェント、ロード・ヒープなどの様々なバイナリを手動でダウンロードし、それをデプロイすることができます。


注意:

WebLogic Server 10.x以上を使用している場合は、6.5.1項「自動デプロイメント・プロシージャ」に示されている自動デプロイメント・プロシージャを使用することをお薦めします。

10.7.7.1 Javaエージェントのダウンロード

「エージェントのダウンロード」ページで、「Javaエージェント(AD4Jエージェント/Jamagent)WARファイル」コンポーネントの横にある「ダウンロード」アイコンをクリックします。「JAMエージェントweb.xmlパラメータ」ページで、リストから使用可能なマネージャを選択し、「チューニング」、「ターゲット・アソシエーション」および「ロギング」の各パラメータを変更して「ダウンロード」をクリックします。指定したシステムにjamagent.warがダウンロードされます。

10.8 JVMヒープの分析

この項では「保存済ヒープ・スナップショット」メニュー・オプションのページについて説明します。このページにアクセスするには、「JVM診断」メニューから「保存済ヒープ・スナップショット」オプションをクリックします。

10.8.1 「すべてのヒープ」ページ

このページは、リポジトリにロードされているすべてのヒープの一覧を示します。JVM名、ベンダー、ヒープ・サイズ、ヒープ使用量などのヒープの詳細を参照できます。%列のリンクをクリックすると、特定のヒープにドリルダウンしてヒープのメモリー使用量を表示できます。「編集」アイコンをクリックするとヒープ・スナップショット情報を編集できます。

10.8.2 「ヒープ使用量」ページ

このページでは、ヒープ使用量のサマリーがヒープの各オブジェクト・タイプ別に示されます。オブジェクトのタイプ(「Klass」、「配列」、「インスタンス」)、各ヒープのオブジェクトの合計数および合計サイズ。

10.8.3 ルート別ヒープ使用量

このページには、オブジェクト数とアクセス可能なヒープ・メモリー量がルートの各クラス別に表示されます。ルートの名前、ルートからアクセス可能なオブジェクトの合計数、およびルートからアクセス可能な調整済メモリー(メモリー・リークのホットスポットの識別に使用されます)が表示されます。

  • 「ルート」列でリンクをクリックすると、ヒープで最もアクセス可能なオブジェクトが表示されます。

  • 比較対象のヒープを選択した後、このページにアクセスすると、「サマリーの表示」オプションを使用できます。このオプションをクリックすると、ヒープのボトムアップ分析が行われます。

10.8.4 「上位40のオブジェクト」ページ

このページにはルートからアクセス可能な上位40のオブジェクトが表示されます。オブジェクトは、オブジェクトからアクセス可能な昇順メモリー(または、2つのヒープの比較時にアクセス可能な調整済メモリーの差異)によって、降順でソートされます。オブジェクトの内部ルート識別子、オブジェクトのタイプ、署名、オブジェクトからアクセス可能な子の数、そしてオブジェクトの合計および調整済メモリーが表示されます。「シグネチャ」リンクをクリックして「ヒープ・オブジェクト情報」ページにドリルダウンします。2つのヒープの比較時にこのページにアクセスすると、オブジェクトのタイプ、各タイプのオブジェクトの数、オブジェクトからアクセス可能な子の数、このオブジェクトからアクセス可能な調整済メモリー、およびデルタが表示されます。「デルタ調整」列には、これらのオブジェクトからアクセス可能な合計メモリーの差異が表示されます。「デルタ調整」リンクをクリックすると、2つのヒープのオブジェクトが比較されます。指定したヒープで、指定した時間/署名のオブジェクトが複数存在する場合、この操作では比較対象のオブジェクトを各ヒープから選択するための選択ページが表示されます。


注意:

2番目のヒープに、1番目のヒープと同じタイプおよび署名の対応するオブジェクトがない場合、2番目のヒープのこれらの列は空白になります。

10.8.5 「ヒープ・オブジェクト情報」ページ

このページにはヒープ内のオブジェクトに関する情報が表示されます。次の項目が表示されます。

  • ヒープ・オブジェクト情報: この表には、ヒープ・スナップショット内の特定のオブジェクトに関する情報が表示されます。

  • オブジェクト情報: この表には、すべてのオブジェクトの子に関する情報(フィールドや配列エントリなど)が表示されます。署名をクリックすると子を確認できます。

  • オブジェクトの子: この表には、すべてのオブジェクトの親(このオブジェクトにアクセス可能な場所からの親)に関する情報が表示されます。署名をクリックすると親を確認できます。

  • ルート: この表には、このオブジェクトに直接アクセス可能なあらゆるルートが表示されます。

10.8.6 「ヒープの比較」ページ

このページでは、比較に使用できるヒープのリストが表示されます。%列をクリックすると、2番目のヒープが比較に選択されます。「ルート別のヒープ使用量の表示」ページが表示されます。「サマリーの表示」をクリックすると、比較中のヒープの詳細が表示されます。

10.9 「データベース」ページの使用方法

この項では「JDBC相関」メニュー・オプションのページについて説明します。6.7項「データベース・エージェントのデプロイ」の説明に従ってデータベース・エージェントをデプロイおよび登録した後、このオプションを使用して登録済データベース上のアクティビティを表示できます。

このページにアクセスするには、「JVM診断」メニューから「JDBC相関」オプションをクリックします。次のページを使用できます。

10.10 JVMスレッドのトレース

JVMスレッドをトレースするには次の方法があります。

10.10.1 「アクティブ・スレッドのトレース」ページ

このページではすべてのアクティブ・スレッドをトレースできます。トレース中に、ターゲット・スレッドの状態およびスタックが、目的の期間に設定した時間間隔でサンプリングされます。このページにアクセスするには、JVMのスレッドの「リアルタイム分析」ページで「アクティブ・スレッドのトレース」をクリックします。詳細は、10.5項「JVMのスレッドの「リアルタイム分析」ページの表示」を参照してください。

トレースを開始する前に次のパラメータを指定できます。

  • ポーリング間隔: 連続するサンプル間の時間間隔。

  • 期間: トレースの期間。

  • スレッドのトレースの詳細: 状態以外にトレースされるサンプル・スレッド・スタック。

  • スレッドの変更の試行: スレッド・スタックがサンプル中に変更される場合(これはスレッドがCPUを使用中に発生する可能性があります)、JVM Diagnosticsではこのサンプルについてそのスレッドがスキップされます。不足しているサンプルを見つけた場合、この機能を使用して変更されたスタックを再トレースします。

  • ネットワーク待機を含む: アイドル・ネットワーク待機をトレースに含めるかどうかを示します。

  • すべてのスレッドのトレース: このチェックボックスを選択すると、アイドルおよびアクティブの両方のスレッドがトレースに含まれます。

  • トレースの中断の許可: トレース・プロセスの中断が許可されます。

トレースが正常に完了したら、「保存したトレースに移動」をクリックしてトレース結果を表示します。

10.10.2 「トレース・サマリー」ページ

このページにはトレースの状態、メソッドおよびスタック情報が表示されます。このページにアクセスするには、「アクティブ・スレッドのトレース」ページで「保存したトレースに移動」をクリックします。

  • JVMトレース結果: このセクションには、トレースが実行された時間および場所に関する情報が示されます。また、トレースの結果に適用されているフィルタもすべて表示されます。

  • リソース使用率: このセクションには、CPU使用率、ヒープ使用量、およびトレース中のガベージ・コレクションなどのシステム・アクティビティが表示されます。

  • 上位の状態: トレースの期間に対する「JVM状態分析」グラフが表示されます。Y軸は、対象の時間にその状態にあったスレッドの数を示しています。

  • 上位メソッド: トレース中に様々なメソッドで費やされた相対時間が表示されます。

  • 状態別のスレッド: この表のスレッドでは、各メソッドの様々な状態で費やされた相対時間が分類されます。「スレッド」リンクには特定のスレッドのみに対するフィルタが表示されます。

  • 状態別のリクエスト: この表には、各リクエストの各状態におけるサンプル数が表示されます。

  • 状態別のメソッド: この表では、各メソッドの様々な状態で費やされた相対時間が分類されます。「メソッド」リンクではコール・スタックが表示され、その中にはメソッドが含まれます。

10.10.3 「使用可能なスレッド」ページ

この表には、「アクティブ・スレッドのトレース」オプションを使用してリポジトリにロードされているすべてのトレースの一覧が表示されます。「スレッド」列は、すべてのアクティブ・スレッドまたは特定のスレッドがトレースされているかどうかを示します。トレース中に取得されたサンプルの数が表示されます。「サンプル」リンクをクリックすると、「トレース・サマリー」ページにドリルダウンできます。「編集」アイコンをクリックすると、一連のサンプルのトレース情報を変更できます。

10.10.4 「スレッド・サマリー」ページ

このページにはトレース内の特定のスレッドの状態、メソッドおよびスタック情報が表示されます。このページにアクセスするには、「トレース・サマリー」ページの「状態別のスレッド」列で「スレッド」リンクをクリックします。

  • JVMトレース結果: このセクションには、トレースが実行された時間および場所に関する情報が示されます。また、トレースの結果に適用されているフィルタもすべて表示されます。

  • リソース使用率: このセクションには、CPU使用率、ヒープ使用量、およびトレース中のガベージ・コレクションなどのシステム・アクティビティが表示されます。

  • 上位の状態: トレースの期間に対する「JVM状態分析」グラフが表示されます。Y軸は、対象の時間にその状態にあったスレッドの数を示しています。

  • 上位メソッド: トレース中に様々なメソッドで費やされた相対時間が表示されます。

  • 状態別のスレッド: この表では、各メソッドの様々な状態で費やされた相対時間が分類されます。「スレッド」リンクには特定のスレッドのみに対するフィルタが表示されます。

  • 状態別のリクエスト: この表には、各リクエストの各状態におけるサンプル数が表示されます。

  • 状態別のメソッド: この表では、各メソッドの様々な状態で費やされた相対時間が分類されます。「メソッド」リンクではコール・スタックが表示され、その中にはメソッドが含まれます。