VisualVM监控远程tomcat
1.tomcat/bin下
vim setenv.sh
export CATALINA_OPTS="-XX:MaxPermSize=256m -Xms2048m -Xmx2048m -Djava.rmi.server.hostname=172.16.18.30 -Dcom.sun.management.jmxremote.port=9988 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
其中java.rmi.server.hostname必须是本机的ip地址
chmod a+w setenv.sh
2.微服务程序直接在启动命令后追加虚拟机参数
nohup java -jar -server echo-service-1.0.0.jar -XX:MaxPermSize=256m -Xms2048m -Xmx2048m -Djava.rmi.server.hostname=172.16.18.30 -Dcom.sun.management.jmxremote.port=9988 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false &
3.VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
下面介绍如何配置jstatd连接方式,实现使用visualgc插件查看远程服务器上java程序的gc情况:
3.1.修改远程服务器上java设置
vi $JAVA_HOME/jre/lib/security/java.policy
在文件末位的};前添加
permission java.security.AllPermission;
3.2.cd $JAVA_HOME/bin
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.18.30(远程服务器IP)
3.3.本地启动VisualVM,因为在配置JMX时已经添加过服务器节点,如果配置正确,通常VisualVM会自动检测到jstatd连接并添加节点
参考:https://blog.csdn.net/Sloth_Sloth/article/details/78026116