自動リーク検出とカスタムメモリ構造のモニタリング

自動リーク検知は、JVMセッション内のすべてのマップおよびコレクションライブラリのメモリ使用データを取得します。ただし、カスタムメモリ構造にすべてのコレクションオブジェクトが含まれているとは限りません。たとえば、メモリ使用量の統計情報を収集するEhcacheなどのサードパーティ製のキャッシュやカスタムキャッシュがある場合もあります。

カスタムメモリ構造を使用すると、アプリによって作成されたカスタムオブジェクトをモニタリングでき、サイズデータは JVM の再起動時にトレースできます。自動リーク検知は通常、リークを識別するために使用され、カスタムメモリ構造は、大まかで粗いカスタム キャッシュ オブジェクトをモニタリングするために使用されます。

カスタムメモリ構造の構成、モニタリング、トラブルシューティングのワークフローを以下に説明します。カスタムメモリ構造は手動で構成する必要があります。

  1. Tiers & Nodesのダッシュボードで、[Automatic Leak Detection, On Demand Capture Session] 機能を使って、モニタリングされないクラスを決定します(例:カスタムキャッシュや、EhCache などのサードパーティのキャッシュ)。
  2. [Custom Memory Structures] を構成し、必要に応じて JVM を再起動します。
  3. [Create New Instance Tracker] ウィンドウで完全修飾クラス名を入力し、[Save] をクリックします。
    Splunk AppDynamics は自動リーク検出で、長期の Java コレクション(HashMap、ArrayList など)を自動的に追跡します。
  4. [Custom Memory Structures] のモニタリングをオンにして、構成したカスタムメモリ構造の潜在的なメモリリークを検出します。
  5. リークしているメモリ構造をドリルダウンして詳細を確認し、リーク元の特定に役立てる。
  6. カスタムメモリ構造を識別するには:
    1. [Memory Automatic Leak Detection ]に移動して、[On] をクリックします。
    2. [Start On Demand Capture Session] をクリックして、どのクラスがどのコレクションオブジェクトにアクセスしているかの情報を取得します。
      この情報を使用してカスタムメモリ構造を識別。
Splunk AppDynamics では、インスタンスカウントで上位 1,000 のクラスが取得されます。