JDK 自带一个工具叫做 JVisualVM,可以用来监控 Java 进程的资源使用情况,自带的 JConsole 也可以用来监控。当监控远程机器上的进程时,需要配置一下 Tomcat 的参数。
在远程机器 Tomcat 的 catalina.sh 文件里加上 JVM 参数:
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
备注:另外需要检查 hostname –i,看解析出来是否为本地的IP,如是127.0.0.1或者IP为多个IP中之一,则其他的IP无效,会连接不上。
也可以使用如下的参数手动指定 hostname 或者 ip 地址
-Djava.rmi.server.hostname=192.168.174.10
然后就可以使用 JVisualVM 远程连接 Tomcat 了。
JVisualVM 还可以产生堆 Dump 文件,然后下载到本地用Eclipse MAT分析内存泄漏问题。