监视和 管理Java 虚拟机

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

Java VM 具有内置的工具,使您可以使用 JMX 技术对其进行监视和 管理。这些内置的 管理Util 通常被称为 Java VM 的即用型 管理 工具。为了监视和 管理Java VM 的不同方面,Java VM 包括一个平台 MBean 服务器和特殊的 MXBean,供符合 JMX 规范的 管理 应用程序使用。

Platform MXBean 和 Platform MBean 服务器

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

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

JConsole

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

即时可用的 管理

因为实现 JMX 技术的标准监视和 管理Util 内置在 Java SE 平台中,所以您无需编写一行 JMX API 代码就可以看到开箱即用的 JMX 技术。您可以通过启动 Java 应用程序,然后使用 JConsole 对其进行监视来做到这一点。

使用 JConsole 监视应用程序

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

-Dcom.sun.management.jmxremote

但是,Java SE 6 平台随附的 JConsole 版本可以附加到任何支持 Attach API 的本地应用程序。换句话说,JConsole 会自动检测在 Java SE 6 HotSpot VM 中启动的任何应用程序,而无需使用上述命令行选项启动。

  • 通过在终端窗口中使用以下命令来启动记事本 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
  • 打开记事本后,在另一个终端窗口中,使用以下命令启动 JConsole:
jconsole

显示“新建连接”对话框。

  • 在“新建连接”对话框中,从“本地进程”列表中选择Notepad.jar,然后单击“连接”按钮。

JConsole 将打开并将其自身连接到Notepad.jar进程。当 JConsole 打开时,将为您提供与记事本有关的监视和 管理 信息的概述。例如,您可以查看应用程序正在消耗的堆内存量,应用程序当前正在运行的线程数以及应用程序正在消耗多少中央处理器(CPU)容量。

  • 单击不同的 JConsole 选项卡。

每个选项卡均提供有关运行记事本的 Java VM 的不同功能区域的详细信息。呈现的所有信息都是从本教程中提到的各种 JMX 技术 MXBean 获得的。所有平台 MXBean 都可以显示在 MBeans 选项卡中。在本教程的下一部分中将检查“ MBeans”选项卡。

  • 要关闭 JConsole,请选择连接->退出。