このページでは、自動メモリリークのダッシュボードを表示し、自動リーク検出を有効にする方法について説明します。「Java メモリリーク」を参照してください。

JVM 要件

  • Oracle JVM 1.5 以降
  • JRockit JVM 1.5 以降
  • IBM JVM 1.6 以降

自動メモリリークのダッシュボード

自動メモリリークのダッシュボードには、以下のものが表示されます。

  • Collection Size:コレクションのエレメントの数。
  • Potentially Leaking:リークの可能性があるコレクションは赤でマークされる。リークの可能性があるオブジェクトに対して診断セッションを開始する必要がある。
  • Status:診断セッションがオブジェクトで開始された場合に示される。
  • Collection Size Trend:急激に増加に傾いている場合はメモリリークの可能性がある。 

長期のコレクションを特定するには、JVMの開始時間とオブジェクト作成時間を比較します。

自動リーク検知を有効または無効にするには、Configure Agent Properties 権限が必要です。「カスタムロールの管理」を参照してください。

自動リーク検知を有効化する

  1. 左側のナビゲーションウィンドウで、[Tiers & Nodes] をクリック。 
  2. 右のペインで、構成するノードのティアを展開。 
  3. ノードを選択し、[View Dashboard] をクリック。 
  4. [Memory ] > [ Automatic Leak Detection] をクリックします。

  5. On をクリックします。 
  6. [Start On Demand Capture Session] をクリックすると、リークしているコレクションが検出されます。

実装前のテスト

リーク検知はパフォーマンスに影響を与える可能性があるため、実稼働前の環境や単一のノードでまずこの機能をテストしてください。

ヒープの上位 20 のアプリケーションクラスと上位 20 のシステム(コア Java)クラスの自動追跡が始まります。 

リーク検出のトラブルシューティング

キャプチャされたコレクションが表示されない場合は、潜在的なメモリリークを検出するための構成が正しいことを確認してください。画面上にも説明が表示されますが、最小コレクションサイズをデフォルトの 5 MB から下げる必要がある場合があります。

より小さいコレクションをキャプチャするように特定のノードのエージェントを構成するには:

  1. [Tiers & Nodes] リストで、ティアを展開し、構成するノードをダブルクリックします。
  2. [App Server Agent] タブがアクティブになっていることを確認し、[Configure] をクリックします。  
  3. アプリケーション、ティア、およびノードを選択してから、[Use Custom Configuration] をクリックします。
  4. ノードプロパティリストで minimum-size-for-evaluation-in-mb を検索します。小さい値を設定してください。 
  5. ノード構成を上書きすることを選択してください。