使用jvisualVM监控远程linux服务器上运行的jar程序

如果是在windows上运行jar程序就比较简单了,可以直接通过打开...\...\jdk1.8.0_65\bin里面的jvisualvm.exe,然后它会自动扫面本地运行的jar程序,如下图:

使用jvisualVM监控远程linux服务器上运行的jar程序

可怎么监控一个远程的linux服务器运行的jar程序呢。方法是使用下面的远程链接功能。

1.点击远程,右键,添加远程主机,输入要监控的主机的ip

使用jvisualVM监控远程linux服务器上运行的jar程序

2.远端服务器启动jar程序的时候,请添加如下参数,如图:

 java -Djava.rmi.server.hostname=192.168.129.129 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar /tmp/zipkin-server-2.9.1-exec.jar &

使用jvisualVM监控远程linux服务器上运行的jar程序

这里面我使用springcloud的zipkin-server-2.9.1-exec.jar做测试,启动它,并且远程对它进行性能检测,其中-Djava.rmi.server.hostname=192.168.129.129这个就是你当前启动jar程序服务器的地址,不加的话可能会出现链接不上的情况,1099是监控需要用到的端口。

3.启动之后,点击jvisualVM里远程下面多出来的服务器,右键,添加JMX链接:

使用jvisualVM监控远程linux服务器上运行的jar程序

4.点击确定后,192.168.129.129服务器节点下会多出来一个子节点,就是你要监控的jar程序:

使用jvisualVM监控远程linux服务器上运行的jar程序

这里面可以看到详细的堆栈使用情况、GC等信息。如果想要功能再全一些的话,推荐使用jvisualVM的一个扩展,叫做visualGC。