使用jconsole和visualVM连接远程JVM

jconsole和VisualVM都是很好的jvm监控工具,本文简单说明这两个工具的连接方式。

首先要启用jconsole连接,需要在被连接的服务器上配置jmx参数。找到系统中tomcat安装目录/bin目录下catalina.sh脚本文件,一般在第一行写入一条新的配置

如果有的话在后边追加就好了,如果系统注册了tomcat的service服务,在服务脚本里加也是可以的。

JAVA_OPTS="
$JAVA_OPTS 
-Dcom.sun.management.jmxremote.port=9008 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"

-Dcom.sun.management.jmxremote.port=9008  用来配置连接端口,注意防火墙开启此端口,hostname -i 查看是否是主机地址,不是的话要改一下,建议配置完成后ping一下。

后边的两条配置是用来加密这个连接的,默认是开启的,就把他关掉。如果要配置加密连接,

你需要看下这篇文章https://www.linuxidc.com/Linux/2015-02/113420.htm

这些jvm的配置完成了之后,去找我们的jconsole客户端,jconsole默认路径是java的安装路径下bin目录里边,直接双击运行。

你会看到这个

使用jconsole和visualVM连接远程JVM_第1张图片

选择远程进程,输入我们配置的远程地址,ip:9008,端口和服务器上配置的要一致,如果配置了加密连接,需要输入设置的用户名和密码,我们没有配置加密连接,用户名和密码不用输入,直接连接。

使用jconsole和visualVM连接远程JVM_第2张图片

它会提示这个,是我们没有使用加密连接的原因,点击不安全的连接就好。

使用jconsole和visualVM连接远程JVM_第3张图片

这样就连接成功了。

可以看一下一共有6个选项卡。比较重要的信息是内存和线程。

在内存选项卡可以手动执行GC,线程选项卡可以检查线程死锁情况,这些对于排查内存问题是很有帮助的,最后一个MBean选项卡可以实现运行时方法调用,要深入了解的话需要了解JMX的相关知识。

对于连接VisualVM,配置和连接jconsole一样,只要jconsole连接上了,也可以使用VisualVM连接,所以我就上官网下了一个,附上连接GitHub开源地址http://visualvm.github.io/,。

VisualVM的界面更直观,反应出来的信息和功能更强。

使用jconsole和visualVM连接远程JVM_第4张图片

 

你可能感兴趣的:(项目中遇到的问题)