プライマリ・コンテンツに移動
Oracle® Enterprise Manager Cloud Control Oracle Fusion Middlewareマネージメント・ガイド
リリース12.1.0.8
B66835-11
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

20 JVM診断の概要

この章では、JVM診断の概要について説明します。この章には次の項目があります。

20.1 概要

ミッション・クリティカルなJavaアプリケーションは、可用性とパフォーマンスの問題にしばしば直面します。開発者とIT管理者は多くの時間を費やして、これらの問題の根本的原因を診断します。本稼働環境で発生する問題は、他の環境では再現できないか、時間がかかりすぎて再現できないことがほとんどです。これはビジネスに重大な影響を及ぼすことがあります。

Oracle Enterprise Manager Cloud Control 12cのJVM診断では、管理者が本番環境でのJavaアプリケーションのパフォーマンスに関する問題を診断できます。問題を再現する必要がないため、問題の解決に要する時間を削減できます。このため、アプリケーションの可用性とパフォーマンスが向上します。JVM診断を使用すると、管理者は、パフォーマンスの問題をテスト環境または開発環境で再現することなく、本番環境でその根本原因を特定できます。アプリケーションの詳細を把握するためにアプリケーションの複雑なインスツルメンテーションや再起動は必要ありません。アプリケーション管理者は、アプリケーションの詳細な知識がなくても、アプリケーションの停止時間の原因となるJavaおよびデータベースの問題を特定できます。JVM診断の主な機能は、次のとおりです。

20.1.1 負荷を抑えたJavaアクティビティの監視および診断

JVM診断を使用すると、Javaアプリケーションの処理速度を低下させずに、細部にわたって監視できます。処理に時間のかかっているリクエストやメソッド、I/Oを待機中のリクエスト、CPUサイクルを大量に消費しているリクエスト、そしてデータベース・コールを待機しているリクエストを特定するのに役立ちます。また、リソースのボトルネックの影響を受けているエンドユーザー・リクエストも特定できます。さらに、パフォーマンスのボトルネックを引き起こしているアプリケーション・リソースも表示できます。

20.1.2 JVMアクティビティの深層部の可視性

JVM診断ではJavaスタックを迅速に可視化できます。スレッドの状態とJavaメソッド/行番号をリアルタイムで監視し、アプリケーション・クラッシュ、メモリー・リークおよびアプリケーションのハングなどの問題を、発生後に診断するのではなく発生前に特定することができます。

20.1.3 リアルタイム・トランザクション・トレース

特定のリクエストがハングしている場合や、アプリケーション全体の処理が遅い場合、管理者はリアルタイム・トランザクション・トレースを実行して、現在のJavaアプリケーション・アクティビティを表示できます。障害が発生しているスレッドや、その実行コール・スタックを参照できます。また、スレッドがデータベース・ロックの待機に費やした時間などの、様々なボトルネック・リソースも分析できます。あるスレッド(またはリクエスト)のアクティビティが他のスレッドのアクティビティや残りのJVMに影響する場合などの複雑な問題を、迅速に発見することができます。

時折、使用されている監視間隔(デフォルトは2秒)が不正確になる場合があります。対象のJavaスレッドのライブが短すぎるか、収集された監視データの量が不十分である可能性があります。このようなケースでは、JVMトレースを実行して、JVMアクティビティの正確な詳細を取得できます。この機能では、短期間に非常に高い頻度(デフォルトの頻度は200ミリ秒に1回)でJavaアプリケーションを監視できます。これによって、スレッド、ボトルネック・リソース(DB、I/O、CPU、ロック、ネットワーク)およびトップ・メソッドの相互依存性を識別できます。

20.1.4 Oracleデータベースとの多層間の相互関係

JVM診断を使用すると、関連付けられたデータベース・セッションへのJavaリクエストをトレースしやすくなり、その逆の場合も同様で、様々な層にまたがる問題の迅速な解決が可能になります。管理者は、DB待機状態のJVMスレッドから、関連付けられたOracleデータベース・セッションにドリルダウンできます。また、SQL問合せから、関連付けられたJVMターゲットおよびWebLogic Serverターゲットにドリルアップできるようになりました(データベースとJVMがEnterprise Managerの管理対象になっている場合にのみ有効)。

この機能では処理に時間のかかっているSQL問合せが明らかになるため、管理者はSQLおよびデータベースをチューニングしてアプリケーションのパフォーマンスを改善できます。このように、データベース層またはアプリケーション層に問題を切り分けることで、データベース管理者とアプリケーション管理者のコミュニケーションがスムーズになります。

20.1.5 メモリー・リークの検出および分析

メモリー・リークはアプリケーションの処理速度の低下につながり、最終的にはアプリケーションのクラッシュを引き起こします。JVM診断では、Javaメモリーの異常な消費量について管理者にアラートが送られます。管理者はJVM Diagnosticsを使用して、アプリケーションを停止せずに本稼働アプリケーションのヒープ・ダンプを取得できます。その他のヒープ分析が、「メモリー・リーク・レポート」および「アンチパターン・レポート」で利用できます。管理者は、複数のヒープ・ダンプを一定期間で取得し、ヒープ・ダンプ間の差異を分析して、メモリー・リークを引き起こしているオブジェクトを識別できます。ヒープ分析は、バージョンが異なるアプリケーションに対しても実行できます。複数のヒープ・ダンプによる様々なヒープ分析によって、メモリー・リークの識別が容易になります。

20.1.6 JVMプーリング

JVM診断では、管理者がJVMのセットをJVMプール内にグループ化できます。これによって、すべての関連するJVMに対する単一のビューがコンソール・ユーザーに提供されます。したがって、単一のアプリケーションまたは単一のクラスタを構成するすべてのJVMを、アプリケーション内でグループ化できます。このため、管理者が問題を自然かつ直観的に視覚化できるようになります。

20.1.7 リアルタイムおよび履歴の診断

JVM診断では、Javaアプリケーションでリアルタイムおよび履歴の診断を実行できます。これによって、本稼働の問題の根本的原因について、同じ問題をテストまたはQA環境で再現しなくても詳細に見通すことができます。トランザクションはブラウザからインタラクティブに再生して、ネットワークおよびサーバーでの消費時間を表示できます。

リアルタイム・データ以外に、履歴データを分析して過去に起こった問題を診断することもできます。エンドユーザー・リクエストにかかった時間と、サーブレット、JSP、EJB、JDBCおよびSQLレイヤーによるブレークダウンを示す履歴データを表示できます。

20.2 このリリースの新機能

この項では、Oracle Enterprise Manager Cloud Control 12cにおけるJVM診断の新機能の一部を一覧で示します。

  • JVM診断エンジンおよびエージェント・デプロイメント・プロシージャを自動化。

  • JVM診断エージェントを本番環境にデプロイするためのカスタマ・プロビジョニング・スクリプト。

  • JVMプール・ターゲットおよびJVMターゲット用に新しいホームページを用意

  • JVMターゲットおよびJVMプール・ターゲットのページに上位データベースのグラフを追加

  • JVMおよびJVMプール用のメトリック・パレットを用意してWebLogic Serverターゲットとの関連付けに対応

  • JVM診断をミドルウェア診断アドバイザに統合

  • JVMターゲットとWebLogic Serverターゲットとの自動関連付け

  • 「JVM診断」リージョンが、「ビジネス・アプリケーション」、「コンポジット・アプリケーション」および「Fusion Application」の各ホームページで利用できるようになりました。

  • JVMしきい値違反をイベント・サブシステムに統合

  • ヒープ・スナップショットのHPROF形式による取得が可能(外部ツールでの分析に対応)ヒープ・スナップショットのインポートが可能

  • パフォーマンス診断ページとライブ・スレッド分析ページにJVMターゲット・ページから直接アクセス可能

  • ライブ・スレッド分析を介したJVMスレッドとデータベース・セッション間の双方向統合

  • スレッドの状態遷移グラフおよびクラス・ヒストグラムが使用可能

  • RMIスレッド状態をサポート

  • ライブ・スレッド分析ページに、SQLによる待機時間(DB待機)、スレッド・スタックのローカル・オブジェクト・ブラウザ、ロックの深さと数を表示

  • スレッドの状態遷移グラフからサンプル・アナライザにアクセス可能

  • Windows 64、WLS Virtual Edition、Solaris x86-64およびAIX 64の各プラットフォームをサポート

  • JVM診断エンジンをすべてのOMSプラットフォームでサポート。

  • Oracle Database 11g R2以降のリリースを使用している場合は多層間の相互関係にDBエージェントが不要

  • RUEIおよびESSからJVM診断にドリルダウン可能

  • JVM診断とCoherence、JVM診断とECMの統合が利用可能に。

  • JVMTIエンジンのパフォーマンスが向上

  • Enterprise Managerオフライン診断機能との統合。特定の収集について、診断データのスナップショットの取得、取得したデータのエクスポート、または診断データのインポートを行うことができるようになりました。

  • JVMターゲットをJBossターゲットに統合可能。

  • クラス・ヒストグラムの保存、比較、編集、編集が可能。

  • JVM診断エンジンの管理に動詞emctl jvmdが使用可能に。詳細は、第21.12項「emctlを使用してJVM診断エンジンを管理する」を参照してください。

20.3 サポートされているプラットフォームおよびJVM

JVM診断エンジンは、Oracle Management Serviceの動作が確認されているすべてのプラットフォームでサポートされます。

最新の動作確認情報は、My Oracle Supportのノート1415144.1を参照してください。My Oracle Supportには、次のURLでアクセスできます。

https://support.oracle.com/CSP/ui/flash.html

20.4 ユーザー・ロール

JVM診断を使用するには、次のJVM診断リソース権限のどちらかを保持している必要があります。

  • JVM診断ユーザー: JVM診断データを表示できます。

  • JVM診断管理者: ヒープやスレッドのスナップショットの作成および分析、スレッドのトレースなどのJVM診断操作を管理できます。

これらの権限は「設定」ページで定義できます。これらの権限の定義の詳細は、『Enterprise Manager Cloud Control管理者ガイド』の「Enterprise Managerのセキュリティ」の章を参照してください。