![]() ![]() ![]() ![]() |
この節では、BEA JRockit Memory Leak Detector (以下、Memory Leak Detector) の起動手順とユーザ インタフェースについて説明します。内容は以下のとおりです。
メモリ リーク検出プロセスには次の 3 つの段階があります。
傾向分析では、絶えず更新されるオブジェクト タイプに関する情報を観察して、メモリが不審に増加しているオブジェクト タイプを見つけます。このようなオブジェクト タイプは、メモリ リーク検出プロセスの次の段階で調査の対象となります。傾向分析テーブルの情報は 10 秒ごとに更新されるか、あるいはガベージ コレクションが非常に頻繁に行われる場合はもっと高い頻度で更新されます。
オブジェクト タイプの関係の調査では、オブジェクト タイプの間の参照パスを追跡調査します。増大しているオブジェクト タイプの関係で注目すべきものを探し、その関係に関わるオブジェクト タイプを見つけることが目的です。メモリが異常に増加しているオブジェクト タイプが見つかったら、メモリ リーク検出プロセスの 3 番目の段階に進みます。
インスタンスの調査では、異常なメモリ サイズのインスタンスや、異常な数の参照があるインスタンスを見つけて、そのインスタンスを調べます。インスタンスを調べる際には、フィールド名、フィールドの型、フィールド値などの値が表示されます。これらの値を利用して、アプリケーション コード内で正確なエラーの場所を探します。つまり、その特定のオブジェクト タイプの特定のインスタンスが割り当て、変更、または削除されている場所です (状況の示す内容によって異なります)。不審なインスタンスに関わる部分にまで問題の場所を絞り込んでいくと、メモリ リークを起こしている実際の問題をうまく見つけ出して、その問題を修正することができます。
Memory Leak Detector とアプリケーションを起動する前に、管理サーバを起動する必要があります。
-Xmanagement
オプションを追加します。memleak
と入力して、Memory Leak Detector を起動します。
ポートの詳細については、『Management Console ユーザーズ ガイド』
http://edocs.bea.com/jrockit/tools/usingjmc/start.html#wp1035010 (JRockit 5.0 用) または
http://edocs.bea.com/jrockit/tools/usingjmc142/mancons.html#wp1001904 (JRockit 1.4.2 用) を参照してください。
Memory Leak Detector のウィンドウが開きます (図 2-1)。
次の 2 つのシステム プロパティを設定することによって、認証を有効にできます。
認証を有効にするには、これらのプロパティを Memory Leak Detector の起動時に設定する必要があります。たとえば、次のように指定します。
java -Dmemleak.jmx.username=<username> -Dmemleak.jmx.username=<password> -jar <path to MemoryLeakDetector.jar>
\bin
カタログの memleak ランチャを使用する場合は、コマンドラインで次のように指定できます。
-J-Dmemleak.jmx.username=<password>
BEA JRockit JVM に接続されていない状態の Memory Leak Detector のウィンドウは図 2-1 のようになっています。このインタフェースは 4 つのタブ、ツールバー、メイン メニュー、およびステータス バーから成っています。
Memory Leak Detector のメイン ウィンドウには、4 つのタブが表示されます (図 2-2)。各タブの機能については、表 2-1 を参照してください。
Memory Leak Detector のツールバー (図 2-3) には、JRockit インスタンスへの接続などの各種操作を行うためのボタンが配置されています。ツールバーの各ボタンの説明は、表 2-2 を参照してください。
ウィンドウの最下部に表示されるステータス バー (図 2-4) には、現在の接続に関する情報、傾向分析がオンかどうか、および割り当てスタック トレースがオンかどうかが表示されます。
![]() ![]() ![]() |