使用Visual VM 监控远程Linux服务器上的 JVM的垃圾回收情况
Posted lostvip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Visual VM 监控远程Linux服务器上的 JVM的垃圾回收情况相关的知识,希望对你有一定的参考价值。
注:以下用到的ip均为随机乱写的,非真实IP
一、启动服务器jar包
本人服务器运行的 springboot 程序,所以直接在启动jar包时,添加相关的参数即可 。(ip为乱写的)
java -Dcom.sun.management.jmxremote.port=19100 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=116.196.123.130 -Dfile.encoding=UTF-8 -Xms256m -Xmx256m -jar /root/dev/ybf-system-0.0.2-SNAPSHOT.jar
另:如果jar包是运行在docker 的镜像中的,需要多加一个参数 Dcom.sun.management.jmxremote.rmi.port=19001
java -Djava.rmi.server.hostname=47.75.162.8 -Dcom.sun.management.jmxremote.port=19001 -Dcom.sun.management.jmxremote.rmi.port=19001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dfile.encoding=UTF-8 -Xms256m -Xmx256m -jar /root/app/lv-miaosha-0.0.2-SNAPSHOT.jar &
二、远程连接
1、打开visual vm ,点击 “文件” 、“添加远程主机” ,输入主机名test(端口默认即可)
2、在test 上右击,选择添加JMX连接,输入 ip : 连接端口
确定,在生成的连接上双击即可连接
三、安装visual GC 插件
问题描述:VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能。
例如:JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
下面介绍如何配置jstatd连接方式,实现使用visualgc插件查看远程服务器上java程序的gc情况:
1.修改远程服务器上java设置 (如果配置了JAVA_HOME)
vi $JAVA_HOME/jre/lib/security/java.policy
在文件末位的 ; 前添加
permission java.security.AllPermission;
2. 启动jstatd
进入 $JAVA_HOME/bin 目录下执行
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=121.42.30.8(远程服务器IP)
3.本地启动VisualVM,因为在配置JMX时已经添加过服务器节点,如果配置正确,通常VisualVM会自动检测到jstatd连接并添加节点
以上是关于使用Visual VM 监控远程Linux服务器上的 JVM的垃圾回收情况的主要内容,如果未能解决你的问题,请参考以下文章
JVM监控及诊断工具之JConsole以及Visual VM
远程调试 .NET 代码 Visual Studio 2010