VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JVM堆内存消耗、线程、类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。在windows中安装JDK后,VisualVM位于%JAVA_HOME%/bin/下,直接执行jvisualvm.exe即可,一个主要运行界面如图:
VisualVM会自动检测本机运行中的JVM并建立连接,本文主要介绍连接远程Linux服务器的配置方法,测试环境为CentOS 6.5,JDK8,Tomcat8。
VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
1 配置前的准备
我们需要先检查linux的hostname匹配的IP,执行
hostname -i
如果匹配的结果是无法识别或者127.0.0.1, 则需要手动配置主机名和IP映射。假设要用于建立连接的IP是192.168.11.233,主机名是mylinux:
vi /etc/hosts
添加一行
192.168.11.233 mylinux
2 配置JMX
2.1 创建setenv.sh
进入tomcat/bin目录
vi setenv.sh
(-Xms512m -Xmx512m不是必须的参数,放在这里只是示意可以连同JVM参数一起调整)
设置权限
chmod +x setenv.sh
2.2 在server.xml中添加listener
进入tomcat/conf目录
vi server.xml
端口可根据实际情况修改,添加后的结构如下图
2.3 JMX访问控制文件
进入tomcat/conf目录,执行
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password
cp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access
然后
vi jmxremote.password
取消以下两行注释
#monitorRole QED
#controlRole R&D
也可以自定义账号,按username password的格式添加一行,这样就需要同时修改jmxremote.access
vi jxmremote.access
在最下面添加
username readwrite
修改权限
chmod 600 jmxremote.password
chmod 600 jxmremote.access
2.4 添加catalina-jmx-remote.jar
下载地址 http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote
下载后复制到 tomcat/lib目录
至此,配置工作完成,但是还需要把2.2中的两个端口加入到防火墙允许规则中
2.5 设置防火墙(可以简单关了)
vi /etc/sysconfig/iptables
在-A INPUT -j REJECT --reject-with icmp-host-prohibited前加入
service iptables restart
在客户机上telnet 服务器的10001和10002端口,如果都通就正确了。
2.6 测试
在客户机上启动jvisualvm.exe,在左侧树形菜单的远程上右键 -> 添加远程主机,主机名填写服务器IP
确定后,远程下出现新的子节点,在子节点上右键 -> 添加JMX连接
连接输入IP:10001,注意这个端口是2.2步骤中配置的rmiRegistryPort。勾选使用安全凭证,用户名和口令即2.3步骤中jmxremote.password文件内的用户名和对应密码。勾选保存安全凭证
本文的配置中未启用SSL,点确定后会提示“请确认不用SSL方式尝试连接”,选择“是”。如果一切顺利在服务器节点下出现JMX连接子节点,双击后即可打开功能界面。
尝试一下强大的Visual GC插件,很遗憾,提示"不受此JVM支持“,如果想使用这个插件,就需要配置jstatd连接方式,下面来看jstatd的配置。
3 配置jstatd
3.1 配置安全策略
在文件末位的 }; 前添加
permission java.security.AllPermission;
3.2 启动jstatd
./jstatd -J-Djava.security.policy=all.policy &
相关推荐
可以看到本地及远程服务器上的Java进程,并进行连接。你可以选择要监控的应用,获取其JVM配置信息,包括JVM参数、类路径、模块系统等。 3. **性能监视** - **内存监控**:实时显示堆内存、非堆内存、eden区、...
在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...
#### 五、使用VisualVM监控远程主机 完成上述配置后,在本地计算机上启动VisualVM工具,选择“添加远程主机”选项,输入远程服务器的IP地址和之前设置的端口号,即可成功连接远程服务器并监控其上的Java应用程序。 ...
2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...
VisualVM不仅能够监控本地JVM,还可以通过JMX(Java Management Extensions)协议连接远程服务器上的JVM。要设置远程监控,需确保远程JVM启用JMX,并配置了正确的端口和访问权限。在VisualVM中,可以通过“文件”->...
2. **远程监控**:VisualVM支持远程连接,通过JMX或RMI,可以对远程服务器上的Java应用进行监控。 3. **离线分析**:可以导出应用程序的快照,以便在离线环境下进行深度分析。 4. **插件安装**:从VisualVM官网下载...
通过JMX(Java Management Extensions),VisualVM可以连接到远程服务器,监控和管理运行的应用。这使得开发者可以在不中断服务的情况下进行性能调试。 6. **插件系统** VisualVM的一大特色是其丰富的插件系统。...
它不仅可以监控本地运行的Java应用程序,还可以配置后监控远程服务器上的Java应用。 首先,VisualVM可以提供详细的JVM信息,包括运行时内存使用状况、CPU使用率、类加载和卸载信息以及线程状态。利用这些信息,...
- **远程监控**:不仅能够监控本地应用,还能连接并监控远程服务器上的Java应用。 - **适用范围**: - 支持从JDK 1.4以上的Java应用程序。 - 在JDK 6 Update 7及以上版本中,VisualVM已经默认集成在JDK安装包中...
作为一款JVM监控工具,VisualVM可以帮助开发者监控Java应用程序的性能指标,如CPU使用率、内存占用、线程状态等。通过对这些数据的分析,开发者可以找出程序的瓶颈,进行性能优化,提高应用的运行效率。 VisualVM的...
VisualVM不仅可以监控本地运行的应用程序,还能通过Java管理扩展(JMX)技术监控远程运行的应用程序。VisualVM不仅适用于开发者,也适用于系统管理员和Java应用的最终用户,它极大地简化了性能调优和问题诊断的过程...
VisualVM可以连接到MBeans服务器,查看和操作MBeans,从而远程管理Java应用程序,执行配置更改或获取运行时信息。 5. **CPU和内存分析**: VisualVM可以深入到CPU使用率的详细级别,展示每个线程的执行情况,帮助...
6. **远程监控**:除了本地JVM,VisualVM还可以连接到远程服务器上的JVM,这使得在分布式环境中远程诊断成为可能。 7. **插件扩展**:VisualVM支持丰富的插件,例如NetBeans Profiler(用于更深入的性能分析)、JMX...
对于远程监控,需在Tomcat等应用服务器的启动脚本中添加相应的JMX远程访问配置。JConsole的界面包含概述、内存、线程、类、VM和MBeans六个主要部分,它们分别显示堆内存使用、线程状态、已加载类、虚拟机信息以及...
它还支持远程连接,使得监控远程服务器上的JVM变得轻松。 了解并熟练使用这些工具,开发者可以更有效地诊断和优化Java应用的内存性能,防止常见的内存问题,如内存泄漏、垃圾收集效率低下等。通过实时监控和定期...
通过JMX(Java Management Extensions)接口,VisualVM可以远程监控和管理Java应用程序,获取更多自定义的性能指标,实现更全面的监控。 7. **插件扩展**: VisualVM支持丰富的插件,用户可以根据需求安装不同的...
5. **JMX集成**:VisualVM可以通过JMX(Java Management Extensions)连接到远程服务器上的应用程序,进行远程监控和管理。 6. **类和方法信息**:它显示关于加载的类和方法的详细信息,包括类的数量、大小以及它们...
本文档“JMX如何使用”深入探讨了如何利用JMX在Java Web环境中进行远程服务器管理与监控。 1. **JMX简介** JMX允许开发者创建和注册管理 Bean(MBeans),这些Bean提供了对应用程序组件的访问接口,从而可以监控和...