使用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"
上面的ip:172.16.22.197 端口:8099就是我们待会远程监控,需要输入的参数
2、打开客户端操作电脑,java路径下的 jvisualvm.exe
3、在文件菜单中,选择添加JMX连接(第1步配置的就是JMX连接参数):
输入之前配置的参数ip和端口,
然后用户名密码这里登录是远程服务端Linux的帐号、密码
4、登录成功以后,就可以进行远程监控了,观察对象线程使用动态情况:
5、CPU使用,垃圾回收曲线图:
6、可以看到,我们虚拟机设置的启动参数,和第1步,添加的JMX连接ip端口参数,也在这里显示出来了:
7、点击内存-》快照,可以在左侧生成快照文件,snapshot
8、隔一段时间,生成两个快照以后,可以选中快照,点击右键比较,可以看看这段时间内,程序增加/减少了对少活动对象:
9、实际用处在哪里?可以监控JVM使用对象动态增加,占用内存大小,占用内存百分比,方便分析程序中使用对象的问题: