JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具。
JConsole可以连接本地的Java程序,也可以连接远程的Java程序。由于是GUI的方式使用,所以就不细说那些基本的使用方法了,这里只是记录一下试用过程中遇到的几个小问题及其解决方案。
这里使用的是SPECjbb2005这个benchmark中的Java来做了一下试验,因为它也是一个Java Application的benchmark,可以在run.sh脚本中对“JAVA_OPTIONS=”这一行进行相应的定制。
1. 要实现让JConsole可以远程连接到某个Java程序,则需要在Java程序启动的JAVA_OPTION中添加选项“com.sun.management.jmxremote.port=8888”来指定远程管理的端口。
2. 启动Java程序时,遇到如下报错:
1 2 3 4 5 6 7 |
[root@localhost SPECjbb2005]# ./run.sh Thu Jul 25 23:00:50 CST 2013 ./jbb.jar:./check.jar: java full version "1.6.0_24-b24" Error: Password file not found: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/management/jmxremote.password Thu Jul 25 23:00:50 CST 2013 |
这是由于开启Java JMX 远程管理时,默认会有用户名密码的验证,所以需要相应的密码文件。
1 2 |
[root@localhost SPECjbb2005]# ls /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/management/ jmxremote.access jmxremote.password.template management.properties snmp.acl.template |
需要先在jmxremote.access中定义用户权限,然后在jmxremote.password文件中定义用户名和对应的密码,jmxremote.password文件可以复制jmxremote.password.template模板文件来进行修改。
当然,在内网中仅仅用于调试,我们一般可以不设置密码验证和SSL连接方式,Java选项如下:
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
3. 在进行了端口和认证信息的配置后,发现在JConsole中通过IP远程连接JVM依然不成功。
错误信息为:Connection Failed: Retry? The connection to 192.168.52.11:8888 did not succeed. Would you like to try again?
在启动Java时,需要设置RMI远程调用的主机名,一般设置为主机的IP地址即可,如下:
-Djava.rmi.server.hostname=192.168.52.11
(当然,也有可能是由于前面第2点中提到的SSL的设置问题,依然需要检查一下)
关于JConsole,还是得执行看看Oracle的这篇Java SE 6 中的JConsole的描述:
http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
(特别是上面文档中对监控数据、图形代表的意义是需要认真理解的)
相关推荐
为了演示如何使用 JConsole 进行远程监控,我们假设如下环境配置: - **服务器**:CentOS 5 + JDK 6 + Tomcat 6 - **服务器 IP 地址**:192.168.1.101 - **客户机**:Windows + JDK 6 ##### 2.1 配置步骤 - **...
使用Jconsole对Java的内存使用情况(JVM)进行监控参照 JDK1.5提供了JMX remote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以...
JConsole通过JMX(Java Management Extensions)技术来实现远程管理和监控,允许开发者和运维人员实时查看JVM的内存使用、线程状态、类加载、MBeans以及虚拟机详细信息。 1. **概述**: - **堆内存**:显示JVM堆...
7. 在Windows环境下,使用Jconsole客户端连接到Linux服务器上配置好的JMX端口,进行远程监控。 Jconsole提供了丰富的视图,包括概述、MBeans、内存、线程、类加载器和Garbage Collector等,这些视图可以帮助开发者...
JConsole 可以远程监控 JVM,需要在远程机器上启动 JMX 代理, 并在本地机器上使用 JConsole 连接到远程机器。 使用 JConsole 可以: * 监控 JVM 的性能,包括堆内存、线程、类加载等信息 * 进行线程 dump 和堆 ...
3. **连接远程JVM**:如果需要监控远程JVM,则需要在远程JVM上启动相应的服务,并在jconsole中输入远程JVM的服务地址进行连接。 ##### jvisualvm jvisualvm是一款功能更全面的JVM监控工具,它不仅能够监控JVM的状态...
Jconsole通过JMX远程管理功能,允许用户在本地机器上监控远程服务器上的Java应用,这对于分布式系统尤其有用。 要在Linux服务器上启用JMX远程监控,首先需要确保服务器上安装了JDK,并且Java应用程序是以支持JMX的...
3. 提供远程监控功能,能够连接到远程的Java应用程序,实时监控其运行情况。 jconsole的使用场景包括: 1. 监控Tomcat服务器的性能,例如监控内存溢出问题。 2. 监控JBoss服务器的性能,例如监控内存使用率、线程...
通过以上步骤,就可以完成使用JConsole工具远程监控Tomcat服务的配置和连接。这些操作对于Java应用开发者和运维人员来说非常实用,能够帮助他们远程检查和分析Java应用的状态,及时发现和解决问题,提高应用的稳定性...
它是一个基于Java Management Extensions (JMX)的图形用户界面(GUI)工具,主要用于远程监控和管理正在运行的Java虚拟机(JVM)。借助于JConsole,开发人员或系统管理员能够轻松地监控本地或远程主机上的Java应用程序...
在JDK8中,JConsole是一个强大的可视化工具,它允许开发者实时监控Java虚拟机(JVM)的状态,包括内存使用、线程活动、类加载、虚拟机概要以及管理MBeans等关键信息。 **JConsole工具** JConsole是Java平台的标准...
3. **连接远程应用**:要监控远程JVM,需要在应用启动时指定JMX远程访问的端口和密码,例如`-Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management....
JConsole是Java官方提供的一款强大的性能监视工具,它可以帮助我们实时监控Java应用程序的运行状态,包括内存使用、线程状态、类加载、JVM垃圾回收等关键信息。本手册将详细介绍如何有效地使用JConsole进行JVM分析。...
本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者掌握 JVM 内存监控的核心技巧。 #### VisualVM:JVM 监控的全能工具 VisualVM 是一款功能强大...
在《jdk50_ts_guide.pdf》文档中,详细介绍了 JConsole 在 JDK 5.0 版本中的使用方法和技术细节,包括如何监控远程应用程序、解析 MBean 数据以及如何解决常见的性能问题。 总结来说,JConsole 是一个强大的 Java ...
为了能够使用jconsole远程监控Tomcat服务器,我们需要对Tomcat做一些必要的配置。 ##### 3.1 修改Catalina脚本 无论是Windows还是Unix/Linux平台,都需要对启动脚本(`catalina.bat`或`catalina.sh`)进行修改,以...
首先,要使用JConsole进行JBoss性能监控,你需要确保你的Java环境已经配置了JMX支持。在JBoss的配置文件(通常是`standalone.xml`或`domain.xml`)中,你需要启用JMX远程访问,并设置安全策略。这通常涉及到开启...
JConsole是Java开发工具包(JDK)自带的一个强大的、基于Java的图形用户界面(GUI)工具,它允许我们监控Java应用程序的资源使用情况,包括内存、线程、类加载以及JVM的垃圾收集等。本文将详细介绍JConsole及其在...