15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 虚拟机系列:虚拟机性能监控可视化工具-JConsole

虚拟机系列:虚拟机性能监控可视化工具-JConsole

时间:2023-06-27 23:36:01 | 来源:网站运营

时间:2023-06-27 23:36:01 来源:网站运营

虚拟机系列:虚拟机性能监控可视化工具-JConsole:

上面两篇文章说了下jdk自带的命令监控工具,本文说下可视化的工具JConsole,这个是jdk自带的图形化性能监控工具。通过JConsole工具可以看到Java应用程序运行情况,可以监控到堆信息,类加载情况,线程信息等。 其实就是把前篇说的命令工具可视化了

打开并连接Java程序

JConsole程序是在%JAVA_HOME%/bin的目录下,直接双击即可启动客户端,如下图




共有两种连接方式,分别是本地进程的连接和远程进程的连接

本地进程:本地进程下面罗列的是本机上正在运行的Java程序,直接双击即可进入到这个进程的监控页面。

远程进程:可以通过地址和端口连接远程的Java进程,但是远程的进程启动的时候需要指定一些参数,如下

-Djava.rmi.server.hostname=127.0.0.1 //远程服务器的IP(本地可访问)-Dcom.sun.management.imxremote -Dcom.sun.management.jmxremote.port=5555 // 远程服务器的端口(随便定一个,用于JMX管理该进程)-Dcom.sun.management.jmxremote.authenticate=false // 是否验证(true的话需要配置密码,自行百度吧)-Dcom.sun.management.jmxremote.ssl=false //ssl控制用以上参数启动Java应用程序,然后在远程连接中填入 127.0.0.1:5555 点击连接即可




概况

在点击连接后,直接进入到概况界面。如下图,共有4个实时的折线图,分别代表堆内存使用量的变化,活动线程数的变化量,已加载类的数量 和CPU占用率的百分比。




内存监控

选择内存的选项卡,可以看到整个页面都是堆内存的信息,图表一栏还可以切换,包含非堆内存,Eden区,Survivor区,老年代,元空间等内存使用情况。点击右上角的执行GC,可以强制执行一次FullGC

线程监控

主要就是关注是否存在死锁,活锁,死循环等线程
选择线程的选项卡,可以看到线程数量的变化折线图,折线图下面显示的程序中每一个线程,点击具体的线程可以在右边看到此线程的具体信息。

最下方有个检测死锁的按钮(实现一个死锁功能),可以自动筛选出出现死锁的线程,如下是死锁的实现代码

如下图检测到的两个线程出现死锁的信息

使用此功能可以方便的查看应用的线程信息,也能很快的定位到死锁问题
相当于之前文章说的命令工具jstack

类加载情况

如下图就是显示系统已经装载的类的数量,还有已经卸载的类数量,这个类信息不用关注太多

虚拟机信息

主要关注的是下图中的堆内存相关的信息
VM概要的选项卡,显示了当前应用程序的运行环境,包括虚拟机类型,版本,堆信息,服务器信息,VM参数,垃圾收集器等信息,具体内容如下图

总结

JConsole的使用效果和之前的文章中说的命令工具效果是一样的,不过这个是直接可视化的,查看更方便,但是需要在服务启动的时候加入固定的参数来使用JMX来监控服务的进程。





我是阿纪,用输出倒逼输入而持续学习,持续分享技术系列文章,以及全网值得收藏好文,欢迎主页关注公众号,做一个持续成长的技术人。 除了Java虚拟机相关的系列内容 还有MySQL高级相关更多内容,如锁,MVCC,读写分离,分库分表等还在持续更新中,如果有想了解的内容也可以给我留言,欢迎关注催更。
所有内容首发于个人网站:纪先生进阶指南
历史文章:

1. 虚拟机系列:JVM 运行时堆内存如何分代

2. 虚拟机系列:jvm中的垃圾回收算法

3. 虚拟机系列:jvm运行时数据区

4. 虚拟机系列:对象的创建,内存布局和访问定位

5. 虚拟机系列:jvm中的垃圾收集器

6. 虚拟机系列:jvm中的内存分配

7. 虚拟机系列:搞懂虚拟机日志和日志参数

8. 虚拟机系列:虚拟机性能监控基础工具

9. 虚拟机系列:虚拟机性能监控基础工具-jstat



关键词:虚拟,化工,系列,性能

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭