监视和管理 Java 虚拟机

原文: https://docs.oracle.com/javase/tutorial/jmx/overview/javavm.html

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

Java VM 具有内置检测功能,使您可以使用 JMX 技术监视和管理它。这些内置管理实用程序通常被称为 Java VM 的开箱即用管理工具。为了监视和管理 Java VM 的不同方面,Java VM 包括一个平台 MBean 服务器和特殊的 MXBeans,供符合 JMX 规范的管理应用程序使用。

Platform MXBeans 和 Platform MBean Server

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

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

JConsole 的

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

开箱即用的管理实践

由于实现 JMX 技术的标准监视和管理实用程序内置于 Java SE 平台中,因此您可以在不必编写单行 JMX API 代码的情况下查看现成的 JMX 技术。您可以通过启动 Java 应用程序然后使用 JConsole 对其进行监视来实现。

使用 JConsole 监视应用程序

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

  1. -Dcom.sun.management.jmxremote

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

  1. Start the Notepad Java application, by using the following command in a terminal window:

    1. java -jar
    2. jdk_home/demo/jfc/Notepad/Notepad.jar

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

    1. java -Dcom.sun.management.jmxremote -jar
    2. jdk_home/demo/jfc/Notepad/Notepad.jar
  2. Once Notepad has opened, in a different terminal window, start JConsole by using the following command:

    1. jconsole

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

  3. In the New Connection dialog box, select Notepad.jar from the Local Process list, and click the Connect button.

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

  4. Click the different JConsole tabs.

    每个选项卡都提供有关运行记事本的 Java VM 的不同功能区域的更多详细信息。所有提供的信息都是从该踪迹中提到的各种 JMX 技术 MXBeans 中获得的。所有平台 MXBeans 都可以显示在 MBeans 选项卡中。 MBeans 选项卡将在此跟踪的下一部分中进行检查。

  5. 要关闭 JConsole,请选择 Connection - >出口。