一篇文章带你全面掌握 jdk 自带监控工具 Jconsole!

前言

我们在测试java项目的需要对应用程序的资源消耗和性能指标进行监控,特别是进行性能测试的时候,监控尤为重要。今天我们介绍的jconsole工具就是一个JDK自带的监控工具,可以直接启动并监控本地或者远程的JVM。它提供了大量的图标,并画出大量的图标,提供强大的可视化界面。

1、jconsole的介绍

Jconsole,Java Monitoring and Management Console,个内置 Java 性能分析器。因为是jdk自带的,所以安装好jdk并配置好环境后,两种方式可以启动jconsole工具:

1)cmd里直接输入jconsole回车启动:

图片.png

2)找到JDK的安装目录下的bin目录下的jconsole.exe,双击打开

图片.png

启动后可以看到jconsole的图形化界面:

图片.png

它可以监控本地的jvm,也可以监控远程的jvm,也可以同时监控几个jvm。会展示JVM中内存,线程和类等的监控。这款工具的好处在于,占用系统资源少,在项目追踪内存泄露问题时,很实用。

2、jconsole本地监控

Jconsole可以监控本地的java进程,会自动列出来本地所有jvm进程,双击这个进程可以进入这个进程监控页面:

图片.png图片.png

可以监控这个进程的内存,线程使用情况等信息:

图片.png

3、jconsole远程监控

我们更多的时候会使用这个工具来监控远程的java进程。比如做性能测试项目部署在云服务器上或者某个虚拟机上,并不是你本地电脑运行的程序,那么就需要使用jconsole进行远程连接并监控。

比如远程Linux服务器上运行了一个tomcat的进程,要监控它就需要再tomcat的配置文件进行修改和配置:

CATALINA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.61.136 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

以上配置解释如下:

图片.png

然后,重启Tomcat,接着进入JDK下的bin目录下运行“jconsole.exe”,输入对应的IP+端口进行远程连接:

图片.png

连接成功后可以监控远程的tomcat进程的资源使用情况:

图片.png

4、jconsole监控页面详情介绍

当Jconsole连接成功后,它从JMX获取信息,我们便可以在里面监控具体的内容。
Jconsole能捕获到以下信息:

  1. 概述 - JVM概述和一些监控变量的信息
  2. 内存 - 内存的使用信息
  3. 线程 - 线程的使用信息
  4. 类 - 加载java类的信息
  5. VM - JVM摘要
  6. MBeans - 所有MBeans的信息

我们做性能测试过程中需要重点关注的是:内存栏、线程栏、类栏,另外概述栏和VM栏次之,MBeans栏在追踪具体问题时用到。

JConsole的在右上角的绿色连接状态图标,断开或重新连接到正在运行的Java虚拟机。 从下拉菜单中选择连接,然后新建连接,您可以同时连接到任何数量运行中的Java虚拟机。

以下以本地监控jconsole进程为例讲解。

1、 查看概述信息

概述选项卡中显示CPU使用率,内存使用率,线程数,Java VM中加载的类的监控信息。

图片.png

2、监控内存消耗

Memory选项卡提供了内存消耗和内存池的信息。下拉可以选择更加详细的堆内存使用信息:

图片.png图片.png

内存标签功能“执行GC”的按钮,可以单击执行垃圾回收。 图表动态显示内存使用的堆和非堆内存的内存池。 可用的内存池取决于正在使用的Java VM的配置。

垃圾回收的内存池有以下几种:

可以从图表下拉菜单中的选项选择不同的图表显示图表这些内存池的消费;此外,点击在右下角的角落堆和非堆图标,将切换显示图表(与下拉框选择不同类型图表功能相同)。

“详细信息” 区域显示了当前内存信息:

3、监视线程使用

线程“选项卡上提供了有关线程使用的信息

图片.png

在左下角的“线程”列表列出了所有的活动线程。 如果你输入一个“过滤器”字段中的字符串,线程列表将只显示其名称中包含你输入字符串线程。 点击一个线程在线程列表的名称,显示该线程的信息的权利,包括线程的名称,状态、阻塞和等待的次数、堆栈跟踪。

图表显示活动线程的数量随着时间的推移。 两行显示。

线程选项卡提供了几个有用的操作。

4、监视类载入中

“类”标签显示关于类加载的信息。

图片.png

图表曲线加载的类的数量随着时间的推移。

在选项卡底部的详细信息部分显示类的加载,因为Java虚拟机开始的总数,当前加载和卸载的数量。 跟踪类加载详细的输出,您可以勾选在顶部的右上角复选框。

5、查看VM信息

VM摘要“选项卡提供了对Java虚拟机的信息。

图片.png

在此选项卡中提供的信息包括以下内容:

回帖
请输入回帖内容 ...