Top/Devel/Java/jvmstat

jvmstatはてなブックマーク

JavaVMのパフォーマンス情報をリアルタイムにモニタリングするツール。


jvmstatA tool to sample and log instrumentation
jvmpsA tool providing a simple Java process listing
visualgcA tool to graphically display instrumentation
perfagentA server providing remote access to instrumentation
jvmsnapA tool to snapshot instrumentation and output as name/value pairs


以下

モニタリングするホストのIP192.168.0.2

と仮定。

インストール

Linux

unzip jvmstat-2.0_b11.zip
mv jvmstat /usr/local/
vi ~/.bash_profile

PATH に /usr/local/jvmstat/bin を追加し、

source ~/.bash_profile
cd /usr/local/jvmstat/policies/
configurepolicy PerfAgentAll.tmpl PerfAgentAll.policy
configurepolicy PerfAgentMinimal.tmpl PerfAgentMinimal.policy
configurepolicy PerfAgentTrustedHost.tmpl PerfAgentTrustedHost.policy
cp PerfAgentMinimal.policy PerfAgent.policy

Windows

c:\に解凍。
システムのプロパティ>詳細>環境変数 でPATHに c:\jvmstat\bat を追加。

cd c:\jvmstat\policies
configurepolicy PerfAgentAll.tmpl PerfAgentAll.policy
configurepolicy PerfAgentMinimal.tmpl PerfAgentMinimal.policy
configurepolicy PerfAgentTrustedHost.tmpl PerfAgentTrustedHost.policy
copy PerfAgentMinimal.policy PerfAgent.policy

テスト

jvmps

jvmps

結果

9398 jvmps.jar
9383 foobar

jvmstat

jvmstat -gcutil 9383

結果

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
  4.71   0.00  58.53  24.25  67.16      8    0.118     3    0.338    0.455

visualgc

visualgc.png
visualgc 9383

perfagent

192.168.0.2で

perfagent

とすると、他のホストから以下のようにしてリモートアクセスできるようになる。

jvmps 192.168.0.2
jvmstat -gcutil 9383@192.168.0.2
visualgc 9383@192.168.0.2

備考

J2SE 5.0でjvmstatの一部は名前を変えてJDKに取り込まれた

jvmstatjstat
jvmpsjps
perfagentjstatd

パフォーマンス情報が保存されるファイル

パフォーマンス情報は
/tmp/hsperfdata_実行ユーザー名/プロセス番号
というファイルにバイナリ形式で記録される模様。

perfagent経由で取得できない場合

こんなエラーが出てしまう場合

Error communicating with remote agent Connection refused to host: 127.0.0.1; nested exception is:
        java.net.ConnectException: Connection refused: connect

/etc/hostsの設定を確認する。

127.0.0.1               hoge localhost.localdomain localhost

127.0.0.1               localhost.localdomain localhost
192.168.0.2             hoge hoge.my.domain

ポート

perfagent
TCP 1099

参考

Amazon

差分 一覧