Sun Identity Manager 8.1 システム管理者ガイド

DTrace の使用

DTrace 機能は、Solaris 10 オペレーティングシステム用に動的にトレースするフレームワークで、JVM 動作を監視できるようになります。

DTrace には、30,000 を超える検証機能が搭載されており、統合されたユーザーレベルとカーネルレベルのトレース機能を使用して、プロダクションシステム内を把握できるようにします。また、C 言語や awk 言語に似た D 言語で、任意のデータと式をトレースすることもできます。この DTrace 機能にも、JVM を監視するための特殊なサポートが備わっているので、使用中のシステム全体と JVM 外部のスパンが監視できるようになります。

DTrace は、検証機能が JVM に内蔵されているので Java 6 で一番使用しやすくなっています。この機能は、Java 1.4 と Java 5 でも動作しますが、次の URL から JVM PI または JVM TI エージェントをダウンロードする必要があります。

https://solaris10-dtrace-vm-agents.dev.java.net/

次の例は、DTrace スクリプトの記述方法を示したものです。


例 4–2 DTrace スクリプトの例


#!/usr/sbin/dtrace -Zs 
#pragma D option quiet
hotspot$1::: 
{
  printf("%s\n", probename); 
}

この例では、$1 をスクリプトの最初の引数に置き換えてください。これは、管理対象となる Java プロセスの PID としてください。たとえば、次のようにします。

# ./all-jvm-probes.d 1234

次の表は、各種 DTrace の検証機能を有効にできるコマンドを説明したものです。

表 4–3 DTrace コマンド

コマンド 

説明 

-XX:+DTraceMonitorProbes

Java 6 の JVM サポートを有効にします (Java 1.4 と Java 5 用パッチ)。 

-XX:+ExtendedDTraceProbes

次の情報を提供します。 

  • JVM の起動 (開始と終了) とシャットダウン

  • 開始スレッドと停止スレッド

  • 読み込み中クラスと読み込み解除中のクラス

  • ガベージコレクション (各種オプションが利用可能)

  • JIT コンパイルの開始と終了

  • 読み込み中コンパイル済みメソッドと読み込み解除中のコンパイル済みメソッド

  • 監視競合、待機、通知

  • メソッドのエントリ、メソッドの戻り値、オブジェクト割り当て

/usr/sbin/dtrace -n ’hotspot*:::’

そのシステム上のすべての Java プロセスに、すべての JVM 検証機能を有効にします。 

/usr/sbin/dtrace -n ’hotspot1234:::’

PID が 1234 の Java プロセスにだけ、すべての JVM 検証機能を有効にします。

/usr/sbin/dtrace -n ’hotspot1234:::gc-begin’

プロセス 1234 を開始するためのガベージコレクション時に起動する検証機能だけを有効にします。


注 –

DTrace はシステム処理を増やすため、この機能はシステムパフォーマンスに影響します。この影響はごくわずかですが、負荷のかかる有効化で大量の検証機能を有効にすると大きくなります。

DTrace のパフォーマンスへの影響を最小限に抑える手順については、『Solaris Dynamic Tracing Guide』の「Performance Considerations」の章に記載されています。

DTrace の詳細は、/usr/demo/dtrace および man dtrace を参照してください。