【JAVA虚拟机】可视化监视与管理控制台-JConsole

原创
2020/12/03 20:03
阅读数 42

1 什么是JConsole

Java开发者为了方便广大研发人员在开发过程中,对jvm性能情况进行实时监控与查看,开发了一整套完整的性能监控系统,包括命令行脚本与可视化页面,其中,命令行脚本的使用方式可以查看文章:【java虚拟机】JDK的命令行工具详解
但是,虽然命令行工具的功能完备且强大,但是由于使用复杂,可视化程度低,不利于研发人员的使用,所以jdk也同时内置了可视化监控工具JConsole,在jdk的bin目录下既可以找到。

JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

2 JConsole的使用

1) 进入JDK/bin目录下,找到“jconsole.exe”文件,双击启动。

2) 工具将自动搜索出本机运行的所有虚拟机进程,选择其中一个,点击连接。

3) 选择信任不安全的链接。

4) 接下来就可以对进程进行监控了。

3 监控内容说明

3.1 内存监控


这个页签相当于可视化的jstat命令
如图所示,可以监控java进程的各个内存的使用情况,包括Java堆和永久代,比如图中展示的就是堆内存的情况,图中为了演示效果写了一直不断创建对象的代码,并将最大堆内存设置为20M,可以看到堆内存一直不断增加,到了10M左右时,发生垃圾收集,收集后下降到3M左右。

右下角这个区域,展示了全部内存块的概要,可以看到堆内存分了三块,非堆内存分了5块,可以说非常直观,具体每块是什么内容这里不做详细解释。

左下角展示了一些指标信息,比如上次垃圾收集时间、最大内存值等等。

3.2 线程监控


线程”页签的功能相当于可视化的jstack命令 如图所示,可以查看线程数量,对于多线程程序的分析,是一个很直观的展示进程内的线程数量变化情况,下面的进程详情,可以看线程的堆栈信息,查看是否堵塞等。
遇到线程停顿时可以使用这个页签进行监控分析。前面讲解jstack命令的时候提到过线程长时间停顿的主要原因主要有:等待外部资源(数据库连接、网络资源、设备资源等)、死循环、锁等待(活锁和死锁)。

3.3 类监控


这里可以查看进程加载类的数量变化情况。

3.4 VM概要


VM概要主要用文字方式展示进程的最新状态值,包含内容比较多这里不意义解释。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部