Java开发工具包(JDK)提供了开发Java应用程序的二进制文件、工具和编译器。其中一个有用的工具是jconsole。
为了演示,我将使用WildFly J2EE应用服务器,它是JBOSS开源应用服务器项目的一部分。首先,我启动了一个独立的实例。
~/wildfly/24.0.1/bin$ ./standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /home/alan/wildfly/24.0.1
JAVA: /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-5.fc34.x86_64/bin/java
现在,在另一个终端,我输入jconsole 。
$ jconsole
启动后,jconsole列出了本地实例。选择本地进程,然后选择进程的名称并点击连接。这就是连接并开始使用jconsole与运行中的Java虚拟机(JVM)的全部步骤。

概述
Java监控和管理控制台在仪表板的顶部显示进程标识符(PID)。概述 "选项卡有四个图表,显示堆内存使用情况、线程、类和CPU使用情况的重要信息。

沿着顶部的标签提供每个区域的更详细的视图。
内存
内存选项卡显示JVM所使用的内存的各个方面的图表。分配给JVM的服务器系统内存的数量被称为堆。这个屏幕还提供了关于堆的内部组件的使用细节,比如Eden Space、Old Gen和Survivor Space。你也可以手动请求一个垃圾收集动作。

线程
线程标签显示了有多少线程正在运行。你也可以手动检查是否有死锁。

类(Classes
类标签告诉你有多少类被加载,有多少被卸载。

虚拟机摘要
虚拟机摘要选项卡提供关于应用程序和主机系统的许多细节。你可以了解你在哪个操作系统和架构上,系统内存的总量,CPU的数量,甚至交换空间。

摘要中显示的关于JVM的进一步细节包括当前和最大的堆大小以及关于正在使用的垃圾收集器的信息。底部的窗格列出了传递给JVM的所有参数。
MBeans
最后一个标签,MBeans,可以让你通过所有的MBeans向下钻取,以查看每个MBeans的属性和值。

总结
Java已经存在了很长时间,它继续为全球数百万的系统提供动力。有很多开发环境和监控系统可以使用,但在基本工具包中包含一个像jconsole这样的工具是非常有价值的。