第1.2节、JAVA VisualVM远程连接使用入门
豆豆 2020-01-22 20:16:54 804人已围观
JAVA VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JVM堆内存消耗、线程、类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。在windows中安装JDK后,VisualVM位于JDK_HOME/bin目录下面,有一个jvisualvm.exe文件,双击打开,启动起来后和jconsole 一样同样可以选择本地和远程,如果需要监控远程同样需要配置相关参数。
主界面如下:
这里我主要讲怎么链接远程Linux服务器的配置方法,(测试环境为CentOS 6.5,JDK7,Tomcat7)。鼠标选中:远程》右键》添加远程主机(H)》出现界面如下:
这里的主机名填写主机IP地址,显示名称可以修改。
VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
由于本机监控无需配置所以本文先介绍JMX的远程连接方式,下篇文章再介绍jstatd的方式。我的步骤如下:
JMX配置方式介绍
第一、配置JMX前检查。
我们需要先检查linux的hostname匹配的IP,执行
hostname -i
查看ip是否为自己的外网IP(如果你仅仅是内网,是内网的IP,但不能是127.0.0.1或者localhost),如果现实的IP和你要使用的外网IP不一致,则需要修改hosts文件,例如:我要使用222.17.110.110 ,主机名是admin,则使用
vi /etc/hosts
添加一行
222.17.110.110 admin
添加完成后保存,再执行一次hostname -i 看IP是否变成你配置的IP,如果生效了则可以继续。
第二、设置JMX连接的用户名和密码
这个主要需要修改远程机器JDK配置文件,我这里远程机器是linux:
a.进入JAVA_HOME\jre\lib\management\目录
b.拷贝jmxremote.password.template这个文件到当前目录, 并改名为jmxremote.password
c.打开jmxremote.password文件,去掉 # monitorRole QED 和 # controlRole R&D 这两行前面的注释符号,如果vi修改过程中报错:E45: 'readonly' option is set (add ! to override)强制保存即可。
第三、被监控程序的配置
修改远程机器上需要被监控的程序的配置文件,我这里是监控Tomcat容器内部署的应用
a.进入TOMCAT_HOME\bin目录
b.打开catalina.sh文件,加入如下信息:
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=18999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
c.重启Tomcat服务.
第四、客户端VisualVM配置
客户端VisualVM配置 (我客户端用的是Winserver2008).
a.直接反键点击Remote,选择Add Remote Host...
b.在弹出的界面中输入远程机器的IP地址(192.168.0.237),这个IP地址会加入到Remote节点下.
c.反键点击这个IP地址,选择Add JMX Connection, 在弹出的界面中输入刚配置的端口号(18999), 这个连接会加入到该IP节点下.
d.反键点击这个连接,选择Open.
第五、查看监控