基于JMX的GUI工具——JConsole 下载本文

内容发布更新时间 : 2024/11/13 8:06:30星期一 下面是文章的全部内容请认真阅读。

jconsole+tomcat配置说明-1-基于jdk1.5

Tomcat配置管理JVM虚拟机JDK

JConsole是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且提供了相对全面的系统监控功能,还是值得一用的。

JConsole

JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要把一个应用以可管理的形式启动,可以在启动是设置com.sun.management.jmxremote。例如,启动一个可以在本地监控的J2SE的应用Java2Demo ,需输入以下命令:

JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar

JDK_HOME需要是一个含有JDK5.0的目录。要启动JConsole,运行

JDK_HOME/bin/jconsole一个用于连接的对话框将会打开。对话框的Local标签列出了所有本地正在运行的JVM,还包含进程的ID等信息。

Figure 2: Local Tab.

JConsole可以以三种方式连接正在运行的JVM:

Local:使用JConsole连接一个正在本地系统运行的JVM,并且执行程序的和运行JConsole的需要是同一个用户。

JConsole使用文件系统的授权通过RMI连接器连接到平台的MBean服务器上。这种从本地连接的监控能力只有Sun的JDK具有

Remote:使用下面的URL通过RMI连接器连接到一个JMX代理: service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi

hostName填入主机名称,portNum为JMX代理启动时指定的端口。

JConsole为建立连接,需要在环境变量中设置mx.remote.credentials来指定用户名和密码从而进行授权。

Advanced:使用一个特殊的URL连接JMX代理。一般情况使用自己定制的连接器而不是RMI提供的连接器来连接JMX代理,或者是一个使用JDK1.4的实现了JMX和JMX Rmote的应用。 当JConsole成功建立连接,它从连接上的JMX代理处获取信息,并且以下面几个标签页呈现信息。

Summary tab. 监控JVM和一些监控变量的信息。

Memory tab. 内存使用信息

Threads tab. 线程使用信息

Classes tab. 类调用信息

VM tab. JVM的信息

MBeans tab.所有MBeans的信息

MBeans tab展示了所有以一般形式注册到JVM上的MBeans。MBeans tab允许你获取所有的平台信息,包括那些不能从其他标签页获取到的信息。注意,其他标签页上的一些信息也在MBeans这里显示。另外,你可以使用 bet365体育在线 MBeans标签管理你自己的应用的MBeans

使用MBeans Tab监控和管理MBean

注册到JMX代理的平台或者应用的MBeans,可以通过MBeans标签获取。例如,内存的MBeans如下面定义

Java代码

? ? ? ? ? ? ? ?

public interface MemoryMXBean {

public MemoryUsage getHeapMemoryUsage(); public MemoryUsage getNonHeapMemoryUsage();

public int getObjectPendingFinalizationCount(); public boolean isVerbose();

public void setVerbose(boolean value); public void gc(); }

内存的MBean包括四个属性:

HeapMemoryUsage. 用于描述当前堆内存使用情况的只读属性

NonHeapMemoryUsage. 用于描述当前的非堆内存的使用情况的只读属性

ObjectPendingFinalizationCount.用于描述有多少对象被挂起以便回收。

Verbose.用于动态设置GC是否跟着详细的堆栈信息,为一个布尔变量,内存的MBean支持一个操作——GC,此操作可以发送进行实时的垃圾回收请求。