1、下载jvmstat-3_0.zip;
2、配置环境变量JVMSTAT_JAVA_HOME为jdk目录E:\Program Files\Java\jdk1.5.0_12
3、监控本机:
jps查看jvm进程id
E:\Program Files\Java\jdk1.5.0_12\jvmstat\bat>jps
7552 Bootstrap
3008 Jps
7916
7108
打开visualgc查看内存使用情况
E:\Program Files\Java\jdk1.5.0_12\jvmstat\bat>visualgc 7552
4、监控远程服务器
服务器新建安全策略文件,因为jdk对jvm做了jaas的安全检测,必须设置策略,使得jstatd允许网络操作。
新建jvmstat.policy,内容如下
grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; }; |
服务器运行jstatd命令
$JAVA_HOME/bin/jstatd -J-Djava.rmi.server.hostname=10.8.1.126 -J-Djava.security.policy=/home/test/jvmstat.policy
客户端执行
E:\Program Files\Java\jdk1.5.0_12\jvmstat\bat>visualgc.cmd [email protected]
31029为服务端jvm进程id,可通过jps命令列出
5、常见错误:
如果没有建立安全策略会报错误:
Could not create remote object access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.System.setProperty(System.java:725) at sun.tools.jstatd.Jstatd.main(Jstatd.java:122) |
如果没有 -J-Djava.rmi.server.hostname=10.8.1.126 参数则客户端执行visualgc命令会报
Remote Exception attaching to rmi://[email protected] |