jvm监控环境搭建-爱代码爱编程
使用visual vm远程监控tomcat运行情况,需要对tomcat主机设置如下:
1. 通过jstatd启动RMI服务
配置java安全访问,将如下的代码存为文件 jstatd.all.policy,放到JAVA_HOME/bin中,其内容如下,
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
2、给文件增加可执行权限chmod +x tomcat
3、执行命令jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.2.83 &
因为是守护进程,需要在最后增加 &符号
注意IP需要替换为实际的IP
4、visual vm新增监控主机
主机名添加已经开启jstatd监控的ip,
可以看到2.83已经监控了三个tomcat,通过pid可以了解到是哪个应用。
内存占用分析工具
常见问题解决:
1、启动jstat进程报如下错误:
[tomcat@localhost ~]$ 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:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:783)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
是由于先启动远程visual vm监控,再启动jstat导致。关闭visual vm,即可启动成功。