文档

Java™ 教程
隐藏目录
Java虚拟机的监视和管理
导航:Java 管理扩展 (JMX)
课程:JMX 技术概述

监控和管理 Java 虚拟机

JMX技术也可以用于监视和管理Java虚拟机(Java VM)。

Java虚拟机内置了仪表化功能,可以使用JMX技术来监视和管理它。这些内置的管理工具通常被称为Java VM的开箱即用(out-of-the-box)管理工具。为了监视和管理Java VM的不同方面,Java VM包括一个平台MBean服务器和专用的MXBeans,供符合JMX规范的管理应用程序使用。

平台MXBeans和平台MBean服务器

平台MXBeans是一组与Java SE平台一起提供的MXBeans,用于监视和管理Java VM和Java Runtime Environment(JRE)的其他组件。每个平台MXBean封装了Java VM的一部分功能,例如类加载系统、即时(JIT)编译系统、垃圾收集器等等。通过使用符合JMX规范的监视和管理工具,可以显示和与这些MXBeans进行交互,以便监视和管理这些不同的VM功能。一个这样的监视和管理工具是Java SE平台的JConsole图形用户界面(GUI)。

Java SE平台提供了一个标准的平台MBean服务器,用于注册这些平台MXBeans。平台MBean服务器还可以注册您希望创建的任何其他MBeans。

JConsole

Java SE平台包含符合JMX规范的JConsole监视和管理工具。JConsole使用Java VM的广泛仪表化功能(平台MXBeans)提供有关在Java平台上运行的应用程序的性能和资源消耗的信息。

开箱即用的管理示例

因为标准的监视和管理工具实现了JMX技术并内置在Java SE平台中,所以您可以在不编写任何JMX API代码的情况下看到开箱即用的JMX技术效果。您可以通过启动一个Java应用程序,然后使用JConsole来监视它。

使用JConsole监视应用程序

此过程演示了如何监视记事本Java应用程序。在Java SE 6版本之前的Java SE平台版本中,您需要使用以下选项启动要使用JConsole监视的应用程序。

-Dcom.sun.management.jmxremote

然而,Java SE 6平台提供的版本的JConsole可以连接到支持Attach API的任何本地应用程序。换句话说,任何在Java SE 6 HotSpot VM中启动的应用程序都会被JConsole自动检测到,不需要使用上述命令行选项启动。

  1. 在终端窗口中使用以下命令启动Notepad Java应用程序:
    java -jar 
        jdk_home/demo/jfc/Notepad/Notepad.jar
    

    其中,jdk_home是安装Java开发工具包(JDK)的目录。如果您没有运行Java SE平台的6版本,则需要使用以下命令:

    java -Dcom.sun.management.jmxremote -jar 
          jdk_home/demo/jfc/Notepad/Notepad.jar
    
  2. Notepad打开后,在另一个终端窗口中使用以下命令启动JConsole:
    jconsole
    

    显示一个新连接对话框。

  3. 在新连接对话框中,从本地进程列表中选择Notepad.jar,然后点击连接按钮。

    JConsole将打开并连接到Notepad.jar进程。当JConsole打开时,您将看到与Notepad相关的监控和管理信息的概览。例如,您可以查看应用程序消耗的堆内存量,应用程序当前运行的线程数以及应用程序消耗的中央处理单元(CPU)容量。

  4. 点击不同的JConsole选项卡。

    每个选项卡提供有关Notepad运行的Java虚拟机不同功能区域的更详细信息。所有呈现的信息都是从本教程中提到的各种JMX技术MXBean中获取的。所有平台MXBean可以在MBeans选项卡中显示。下一节将介绍如何检查MBeans选项卡。

  5. 要关闭JConsole,选择连接 -> 退出。

上一页: JMX 技术的架构
下一页: MBean 简介