Java 仮想マシン統計データ監視ツール

JVMのメモリ使用量を図る必要があるのでちょっとメモ。

TPTPとかプロファイルツールを使うのは面倒なので、JDKに付属のツールを使う。

jstat - Java 仮想マシン統計データ監視ツール
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html

以下は、簡単な使い方。

jpsコマンドで監視対象のJVMを見つける。

jpsコマンドで調べる。"-v"を付けないとなんのJVMだか全然わかんない。

jps -v

以下実行結果。

5356  -Dosgi.requiredJavaVersion=1.5 -Xms256m -Xmx256m -Dfile.encoding=UTF-8 -Declipse.cvs.anon=true -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -XX:MaxPermSize=256M
4336 Jps -Dapplication.home=c:\Program Files\Java\jdk1.5.0_15 -Xms8m
5088 Launcher -Xms512m -Xmx1024m -Dclassworlds.conf=c:\Bin\apache-maven-2.0.10/b
in/m2.conf -Dmaven.home=c:\Bin\apache-maven-2.0.10

EclipseMavenJpsが起動している。Mavenが今回の監視対象。

監視する。

jstat -gcutil -t 5088 3000

これは、3秒おきにガベージコレクションの統計データの概要を表示する場合。

Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
          961.9   0.00   0.00   1.69   9.26  99.66     81    1.440    21    7.615    9.054
          964.9   0.00   0.00   1.69   9.26  99.66     81    1.440    21    7.615    9.054
          968.0   0.00   0.00   1.69   9.26  99.66     81    1.440    21    7.615    9.054

jstatの形式は以下の通り。

jstat <出力オプション> <プロセスID> <データ取得間隔(ms)>

オプションは、上のリンクを見てね。

その他

リモートのPCの監視もできるみたいよ。調べないけど。