メモリリークの可能性の識別

カスタムメモリ構造のメモリ使用パターンのモニタリングを始めます。急激に増加に傾いている場合、オブジェクトは自動的にリークの可能性があるオブジェクトとしてマークされます。メモリリークダッシュボードに以下の情報が表示されます。

  • :ヒープおよびガベージコレクションのメトリックを提供します。
  • 自動リーク検知は、JVMセッション内のすべてのマップおよびコレクションライブラリのメモリ使用データを取得します。
  • :ヒープ内の上位 20 のアプリケーションクラスと上位 20 のシステム(コア Java)クラスのトラッキングデータを提供します。
  • :特定のクラスを追跡し、Java コレクションではないカスタムキャッシュまたはその他の構造をモニターできます。

Custom Memory Structuresダッシュボードには、以下の情報が表示されます。

    • Class:モニターリングされているクラスまたはコレクションの名前。
    • Deep Size (bytes):構造に対して使用できるメモリの上限。ディープサイズはJVMの再起動の前後をまたいでトレースされる
    • % of Current Used Heap:動的割り当てに使用できるメモリの割合。
    • Potentially Leaking:リークの可能性があるコレクションは赤でマークされる。リークの可能性があるオブジェクトに対して診断セッションを開始することが推奨される。
    • JVM Start Time:カスタムメモリ構造は JVM の再起動の前後をまたいで追跡される。
    • Status:診断セッションがオブジェクトで開始された場合に示される。
    • Deep Size:急激に増加に傾いている場合はメモリリークの可能性がある。

リークの可能性があるコレクションが識別されたら、診断セッションを開始します。

メモリリークの診断

のダッシュボードで、モニタするクラス名を選択し、[] をクリックします。

リークしているコレクションの分離

コレクションがアプリケーションのどの部分に属しているかを特定するには、コンテンツ検査を使用します。これにより、特定のメモリ構造の全エレメントのヒストグラムをモニタリングできます。オブジェクトに対して診断セッションを開始し、それから以下の手順に従います。

  1. Content Inspectionタブを選択。
  2. [コンテンツサマリーキャプチャセッションの開始(Start Content Summary Capture Session)] をクリックします。
  3. セッション期間を入力。データ生成に少なくとも1-2分を割り当てる。
  4. [] をクリックし、セッションデータを取得する。
  5. スナップショットをクリックして特定のコンテンツサマリキャプチャセッションに関する詳細を表示。

アクセストラッキング

アクセストラッキングを使用して、メモリ構造にアクセスする実際のコードパスとビジネストランザクションを表示します。オブジェクトに対して診断セッションを開始し、それから以下の手順に従います。

  1. Access Trackingタブを選択。
  2. アクセス トラッキング セッションの開始
  3. セッション期間を入力。データ生成に少なくとも1-2分を割り当てる。
  4. [] をクリックし、セッションデータを取得する。
  5. スナップショットをクリックして特定のコンテンツサマリキャプチャセッションに関する詳細を表示。