JVMのHeap tuningをする時にHeap領域 & GCを可視化したいと思って探したToolの備忘録です。
Prerequisite
- VisualVM
- http://visualvm.java.net/
- Oracle Java JDKにも同梱されている
- Visual GC plugin
- VisualVMのツール->プラグインからInstallする
- jstatd (monitoring対象のserver)
- Oracle Java JDKに同梱されてる
Oracle Java JDKを使っていれば全部揃ってます。
jstatd起動
可視化したい対象serverでall.policy
ファイルを作成し、jstatd
を起動します。
all.policy
grant {
permission java.security.AllPermission;
};
$ jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.hostname=<host ip> &
VisualVM起動 & GCを見る
VisualVMを起動してリモートに対象serverを登録すると自動的にjstatdへ接続され、Visual GCでHeap領域とGCの様子が見えます。
※VisualVMではJMXを通じたmonitoringもできますが、Visual GCはjstatdでないと利用できませんでした。