Javaのオブジェクトインスタンスの追跡
このページでは、Java アプリケーションのオブジェクトインスタンス追跡を構成して使用する方法について説明します。これを構成する必要がある理由の詳細については、「Java メモリスラッシング」を参照してください。
オブジェクトインスタンス追跡が有効な場合、Splunk AppDynamics ではデフォルトでヒープの上位 20 のアプリケーションと上位 20 のシステム(コア Java)クラスが追跡されます。特定のクラスを追跡することもできます。
オブジェクトインスタンス追跡の前提条件
- オブジェクトインスタンスの追跡のプラットフォームサポートについては、「Java対応環境」を参照してください。
- Java 9 より前の JVM の場合、オブジェクトインスタンスの追跡には
tools.jarを使用します。アプリケーションが JDK で実行されている場合は、tools.jarがすでに利用可能になっています。JRE で実行している場合は、tools.jarを<JRE_HOME>/lib/extに追加して JVM を再起動する必要があります。tools.jarは <JAVA_HOME>/lib/tools.jarにあります。 libattach.so(Linux)またはattach.dll(Windows)を JDK から JRE にコピーする必要がある場合があります。- JDK バージョンによっては、以下のように(他の
-jarオプションとともに)クラスパスも指定しなければならない場合があります。 - Java 9 以降の場合、JEP220 では OIT に必要な機能は Java Runtime コアに移動されているので、
tools.jarは必要ありません。アプリケーションが JDK9+ で実行されている場合は、tools.jar がすでに利用可能になっています。JRE を使用して実行している場合は、jdk.jcmd を<JRE_HOME>/bin および/lib を使用して jlink を使用します。
クラスパスの指定
-classpath オプションを使用してクラスパスを設定します。例:- Windows:
java -classpath <complete-path-to-tools.jar>;%CLASSPATH% -jar myApp.jar - Unix:
java -Xbootclasspath/a:<complete-path-to-tools.jar> -jar myApp.jar
オブジェクトインスタンス追跡の有効化
- 左側のナビゲーションウィンドウで、Tiers & Nodes をクリックします。
- 右のペインで、ティアノードを展開し、オブジェクトインスタンス追跡を有効にするノードのノードダッシュボードを開く。
- [Memory] タブをクリックします。
- [Object Instance Tracking] サブタブをクリック。
- [ON] をクリックします。
特定のクラスの追跡
追跡対象として特定のクラスのインスタンスを指定する場合は、[Object Instance Tracking] サブタブの [Configure Custom Classes to Track] オプションを使用します。なお、ここで構成したクラスが追跡されるのは、インスタンスカウントが JVM の上位 1000 のインスタンスカウント内にある場合のみです。
カスタムクラスのインスタンスを追跡するには:
- [Object Instance Tracking] タブで、[Configure Custom Classes to Track] をクリックします。
- 表示される [Instrumentation] ページで、カスタマイズするティアをクリック。
- ティアの [Object Instance Tracking] セクションで、[Add] をクリック。
- 追跡するクラスの完全修飾クラス名を入力し、[Save] をクリック。