使用jvisualvm.exe远程监控JVM虚拟机

1、需要在被监控的服务端配置如下参数:

我是在springboot项目的*.sh脚本中添加的:

JAVA_OPTS="-Djava.rmi.server.hostname=172.16.22.197 -Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jmxremote.rmi.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 

使用jvisualvm.exe远程监控JVM虚拟机_第1张图片

上面的ip:172.16.22.197   端口:8099就是我们待会远程监控,需要输入的参数

 

2、打开客户端操作电脑,java路径下的 jvisualvm.exe

使用jvisualvm.exe远程监控JVM虚拟机_第2张图片

 

3、在文件菜单中,选择添加JMX连接(第1步配置的就是JMX连接参数):

输入之前配置的参数ip和端口,

然后用户名密码这里登录是远程服务端Linux的帐号、密码

使用jvisualvm.exe远程监控JVM虚拟机_第3张图片

 

4、登录成功以后,就可以进行远程监控了,观察对象线程使用动态情况:

使用jvisualvm.exe远程监控JVM虚拟机_第4张图片

 

5、CPU使用,垃圾回收曲线图:

使用jvisualvm.exe远程监控JVM虚拟机_第5张图片

 

6、可以看到,我们虚拟机设置的启动参数,和第1步,添加的JMX连接ip端口参数,也在这里显示出来了:

 

使用jvisualvm.exe远程监控JVM虚拟机_第6张图片

 

 

7、点击内存-》快照,可以在左侧生成快照文件,snapshot

使用jvisualvm.exe远程监控JVM虚拟机_第7张图片

 

8、隔一段时间,生成两个快照以后,可以选中快照,点击右键比较,可以看看这段时间内,程序增加/减少了对少活动对象:

使用jvisualvm.exe远程监控JVM虚拟机_第8张图片

 

9、实际用处在哪里?可以监控JVM使用对象动态增加,占用内存大小,占用内存百分比,方便分析程序中使用对象的问题:

使用jvisualvm.exe远程监控JVM虚拟机_第9张图片

你可能感兴趣的:(JVM)