jstatd是一个RMI的server,它可以监控Hotspot的JVM的启动和结束,同时提供接口可以让远程机器连接到JVM。 比如 jps jstat都可以通过jstatd来远程观察JVM的运行情况。
jstatd可以通过 内部 rmi和外部rmi 注册,除了在启动参数中加入权限意外,也必须加入java.rmi.server.hostname=192.168.0.10 ,否则会出现 Remote Exception attaching to rmi://8757@192.168.0.10, 原因跟jconsole一样,服务端传过来的IP地址为 hostname -i的值,所以不一定是192.168.0.10.
完整的jstatd启动选项为 jstatd -J-Djava.rmi.server.hostname=192.168.0.10 -J-Djava.security.policy=/home/jli/jstatd.all.policy, -J选项中的值都会传给java。
[root@localhost ~]# jstat -gcutil -t 8757@192.168.0.10 1s 30
Timestamp S0 S1 E O P YGC YGCT FGC FGCT GCT
7253.1 0.00 50.00 1.92 3.25 41.18 9 0.027 0 0.000 0.027
7254.1 0.00 50.00 1.92 3.25 41.18 9 0.027 0 0.000 0.027
7255.1 0.00 50.00 1.92 3.25 41.18 9 0.027 0 0.000 0.027
7256.1 0.00 50.00 1.92 3.25 41.18 9 0.027 0 0.000 0.027
http://download.oracle.com/javase/6/docs/technotes/tools/share/jstat.html#vmidentifier