讲解JVM的性能检测工具,主要是一些图形化的工具。
前言
这篇文章是结合上一篇文章《【JVM系列4】JVM常用命令》来讲的,上一篇文章讲的是JVM一些常用的命令,但是通过命令的方式查看JVM的指标非常费劲,还是图形化工具香,如果在跟进线上机器的JVM问题时,可能还是离不开JVM命令。
图形化工具
jconsole
Jconsole(Java Monitoring and Management Console)是从java5开始,在JDK中自带的java监控和管理控制台,用于对JVM中内存,线程和类等的监控,是一个基于JMX(java management extensions)的GUI性能监测工具。jconsole使用jvm的扩展机制获取并展示虚拟机中运行的应用程序的性能和资源消耗等信息。
JConsole程序位于%JAVA_HOME%bin目录下,直接通过命令启动:
JConsole
概览:包括堆内存使用情况、线程、类、CPU使用情况四项信息的曲线图。
内存:主要展示了内存的使用情况,同时可以查看堆和非堆内存的变化值对比。
线程:相当于可视化的jstack命令,同时也可以点击“检测死锁”来检查线程之间是否有死锁的情况。
VM概要:展示JVM所有信息总览,包括基本信息、线程相关、堆相关、操作系统、VM参数等。
其实我主要是想用这个工具检测线上机器,后面我再把线上机器的监控倒腾一下。
VisualVM
VisualVM(All-in-One Java Troubleshooting Tool)是功能最强大的运行监视和故障处理程序之一,曾经在很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具。
相比一些第三方工具,VisualVM有一个很大的优点:不需要被监视的程序基于特殊Agent去运行,因此它的通用性很强,对应用程序实际性能的影响也较小,使得它可以直接应用在生产环境中。
VisualVM程序位于%JAVA_HOME%bin目录下,直接通过命令启动:
jvisualvm
可以安装插件,点击工具->插件:
Visual GC 是常常使用的一个功能,需要通过插件按照,可以明显的看到年轻代、老年代的内存变化,以及gc频率、gc的时间等,感觉这个插件很酷!
监控的主页其实也就是,cpu、内存、类、线程的图表,这里面可以执行堆dump。
线程和jconsole功能没有太大的区别。
热门评论
2 条评论
回复