使用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

无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM

Microsoft visual c++弹窗?

visual studio 是否可以远程监控局域网电脑

在 opensuse 11.3 linux 上部署 rstatd 以在 Loadrunner 中进行远程监控