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

JAVA herman 1484浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

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 应用程序与所监控的平台隔离。因此线上使用的人非常的少,网上的相关教程也不是很多。

参考资料

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » JVM 监控之 jconsole 工具的使用教程