jvisualvm是JDK自带的监控JVM运行状况的工具,利用jvisualvm可以查看JVM的运行、GC情况;线程的运行情况;内存中类及实例的情况等。
使用jvisualvm来远程观察Java程序,原文链接:http://blog.iamzsx.me/show.html?id=394002
有时候,我们可能需要远程查看某台机器上的Java程序的运行情况,例如,可能出现了内存泄露,但是只能在某个特定的环境中出现。这时候我们就需要远程观察Java程序的一些执行情况。jvisualvm提供了很方便的界面来帮助我们监控Java程序。
这里要介绍的第一种方式是,使用JMX来进行监控。
这种方式要求我们在启动Java程序的时候手动开启jmx remote功能。开启的方式是使用下面的命令行参数启动Java程序:
-Dcom.sun.management.jmxremote.port=<port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
这里<port>是jxm remote使用的端口。大家可以随意改成自己想要的端口。
假设我们要在10.2.3.4这台机器上启动一个Java程序foo.jar。那么我们可以使用下面的方式来启动程序。
java -Dcom.sun.management.jmxremote.port=40124
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -jar foo.jar
在这里我们把端口设置成了40124。
接下来我们打开jvisualvm,然后在Remote上点击右键,填上我们要监控的服务器host: 10.2.3.4,点击OK。