使用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,即可啓動成功。