tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

VisualVMでリモートプロセスのモニタリングをする

JMX経由で接続する場合の準備

java起動時に次のオプションを付けて起動する。

  • -Dcom.sun.management.jmxremote.port=3333
  • -Dcom.sun.management.jmxremote.ssl=false
  • -Dcom.sun.management.jmxremote.authenticate=false

jstatd経由で接続する場合の準備

まず、ポリシーファイルを以下の内容で作成する。

all.policy
grant {
	permission java.security.AllPermission;
};


そしてjstatdを起動する時に作成したポリシーファイルを指定する。

jstatd -J-Djava.security.policy=all.policy &

VisualVM側の設定

VisualVMでRemote Hostを追加すると、jstatdのものは自動的に認識される。
JMX経由の場合は別途JMXを追加する。


お手軽に見るなら起動済みプログラムに対してもモニタリングできるjstatdのほうが楽。
でもリモートだと見れる情報が少ない(ダンプもとれない)から、結局は環境を工夫してローカルで見る形にしたほうが便利。