一、概述
通过jmx远程连接,可以监控到远程服务器的堆内存、线程信息等
二、配置
命令启动jar包时,添加jvm参数
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.rmi.port=12346
-Djava.rmi.server.hostname=192.168.1.100
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
这个配置时不需要连接账号密码。网通的情况下,使用IP和port连接即可
修改jre包下的文件(该步骤用于设置连接的账号密码)
在某些情况下,你可能还需要配置JMX的远程连接。这通常涉及到复制和修改jmxremote.password文件。进入$/jre/lib/management/目录,复制jmxremote.password.template文件为jmxremote.password,然后编辑该文件,移除monitorRole和controlRole前的注释,并保存。
启动好jstatd 代理,具体步骤查看JVM监控文章
三、连接
本地安装JDK的目录,找到jvisualvm.exe,连接上远程服务器后(操作步骤参考文章-JVM监控),点击jmx连接。jmx连接url
service:jmx:rmi:///jndi/rmi://192.168.1.100:12345/jmxrmi
4、结果
可以查看cpu、内存等信息,但是堆栈信息,不能实时查看,远程服务器会下载堆栈信息到本地。等监控结束后,下载文件到本地,离线导入分析
一般下载地址
/tmp/heapdump-1720667382012.hprof
heapdump-1720667382012.hprof是文件名,会有变动,注意看提示