JVM 监控之 jconsole 工具的使用教程

jconsole 是基于 jmx 之上的一个 jvm 的监控工具。一个 java GUI 监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器 VM。用 java 写的 GUI 程序,用来监控 VM,并可监控远程的 VM,非常易用,而且功能非常强。在 Mac 下命令行里打 jconsole,选则进程就可以使用它了。

jconsole 主要监控 JVM 的概览、内存、线程、类、vm概要、MBean等内容。

如果是本地环境,我们直接输入 jconsole 即可打开 jconsole GUI 程序。

jconsole 连接登陆页面

上图就是 jconsole 的一个连接登录页面。

在 Mac 下,每次连接都会提示当前连接非 ssl 安全连接,询问你是否使用 SSL 安全连接,因为我们这里没有做配置,说不能采用安全连接。直接选择不安全的连接即可。

如果是远程连接,或者安全连接,可以在启动参数中做一下配置:

-Djava.rmi.server.hostname=192.168.56.253 
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.acccess.file=/usr/local/tomcat/bin/jconsole/jmxremote.access
-Dcom.sun.management.jmxremote.password.file=/usr/local/tomcat/bin/jconsole/jmxremote.password

连接上了之后,看到的界面内容如下:

JConsole 主界面

其中 VM 选项卡中显示的内容非常的多。在此选项卡中提供的信息包括以下内容。

  • 摘要

    • 运行时间 :开始以来,Java虚拟机的时间总额。
    • 进程的CPU时间 :Java VM的开始,因为它消耗的CPU时间总量。
    • 编译总时间 :累计时间花费在JIT编译。
  • 主题

    • 活动线程 :目前现场守护线程,加上非守护线程数量。
    • 峰值 :活动线程的最高数目,因为Java虚拟机开始。
    • 守护线程 :当前的活动守护线程数量。
    • 总线程 :开始自Java虚拟机启动的线程总数,包括非守护进程,守护进程和终止的线程。
    • 当前类装载 :目前加载到内存中的类数目。
    • 总类加载 :从Java VM开始加载到内存中的类总和,包括那些后来被卸载的类。
    • 已卸载类总数 :从Java虚拟机开始从内存中卸载的类的数目。
  • 内存

    • 当前的堆大小 :目前所占用的堆的千字节数。
    • 分配的内存 :堆分配的内存总量。
    • 最大堆最大值 :堆所占用的千字节的最大数目。
    • 待最后确定的对象:待最后确定的对象的数量。
    • 花在执行GC的垃圾收集器 :包括垃圾收集,垃圾收集器的名称,进行藏品的数量和总时间的信息。
  • 操作系统

    • 总物理内存
    • 空闲物理内存
    • 分配的虚拟内存
  • 其他信息

    • VM参数 :输入参数的应用程序通过Java虚拟机,不包括的主要方法的参数。
    • 类路径是由系统类加载器用于搜索类文件的类路径。
    • 库路径 :加载库时要搜索的路径列表。
    • 引导类路径 :引导类路径是由引导类加载器用于搜索类文件。

看似 jconsole 的操作功能比较少,但实际上包含非常多的内容。

JConsole 会消耗大量系统资源,因此 Oracle 建议仅在用于创建原型的开发环境中使用它。还建议使用远程监控将 JConsole 应用程序与所监控的平台隔离。因此线上使用的人非常的少,网上的相关教程也不是很多。

参考资料

  • JConsole的使用手册
  • 使用 JConsole
  • jconsole

JVM 监控之 jconsole 工具的使用教程

: » JVM 监控之 jconsole 工具的使用教程

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/251994.html

(0)
上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐

发表回复

登录后才能评论