jvmstat


jvmstat は、JVMの状況をリアルタイムにモニタリングするツールです。
ヒープメモリやガベージコレクトの状況などを一目することができます。JVMのメモリチューニングに欠かすことのできないツールです。

インストール

jvmstat のダウンロード

モニタリング対象のJVMによってバージョンが違います。対応するバージョンをダウンロードしてください。

JVM(HotSpot)のバージョンjvmstatのバージョン
JVM 1.4.1jvmstat 1.1
JVM 1.4.2jvmstat 2.0

*ダウンロードするには、米国のSDCアカウントが必要です。

配置

ダウンロードしたアーカイブを、適当な場所に展開/配置すれば完了です。
以下、配置したディレクトリを $JVMSTAT_HOME とします。

環境変数 PATH を設定しておきましょう。
Windows:$JVMSTAT_HOME\bat
Unix:$JVMSTAT_HOME/bin
以下、Windows 環境で、環境変数 PATH が設定されているものとします。

ローカルJVM環境のモニタリング

JVMのIDの取得

jvmps コマンドで、JVMのIDを取得します。

>jvmps 2372 FileChooserDemo.jar 980 Java2Demo.jar

今回は JVMのID 980 の Java2Demo.jar をモニタリングしてみましょう。

モニタリング

visualgc コマンドで、JVMの状況をモニタリングします。

>visualgc 980
JVMの状況をモニタリングする画面が表示されます。

リモートJVM環境のモニタリング

エージェントの起動

モニタリングするJVMが動作するホストで、エージェント(Java Virtual Machine Performance Monitoring Agent)を起動します。
エージェントを起動するには、ポリシーファイルが必要です。configurepolicy コマンドを実行し、テンプレートファイルからポリシーファイルを生成します。
今回は、エージェントへフルアクセスを許可するテンプレートファイル PerfAgentAll.tmpl から生成します。

configurepolicy コマンドを実行します。

>configurepolicy $JVMSTAT_HOME\policies\PerfAgentAll.tmpl $JVMSTAT_HOME\policies\PerfAgent.policy

perfagent コマンドを実行し、エージェントを起動します。

>perfagent

JVMのIDの取得

jvmps コマンドで、エージェントが起動しているリモートホストのJVMのIDを取得します。

>jvmps remote_host_name 1672 perfagent.jar 2372 FileChooserDemo.jar 980 Java2Demo.jar

JVMのID 980 の Java2Demo.jar をモニタリングしてみましょう。

モニタリング

visualgc コマンドで、JVMの状況をモニタリングします。

>visualgc 980@remote_host_name

ローカルJVM環境のモニタリング時と同様の画面が表示されます。