Jconsole
Jconsole
1.1 简介以及连接
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具。下面以对tomcat的监控为例,带领大家熟悉Jconsole这个工具。
Step 1,在dos/bash命令下输入:jconsole;
Step 2,在弹出的对话框中选中apache,并点击connect(假设你的tomcat已经启动);
接下来,你就能使用jconsole来做一些简单的性能监控了。
1.2 模块介绍
1.2.1 Overview
1. 概要界面,主要显示堆内存使用情况、活动线程数、加载类数、CPU使用率四个参数的概要,可以通过下拉框来定制显示的时间范围;
2. 假如堆内存的图像一直在上升而没有下降的动作发生,则要怀疑是否内存泄露;健壮的项目由于GC的存在,所以它的上升和下降的幅度应该大抵相同;
3. CPU的图像规律跟堆内存的大致相同。
1.2.2 Memory
1. 图示为被监控程序的详细内存图;
2. 关注点1:点击右上的GC按钮可以通知JVM进行垃圾回收,实质是把垃圾回收队列的优先级提高;
3. 关注点2:GC time显示了每次回收的时间、算法以及回收数,7.619 seconds是用时,Copy表示垃圾回收机制的复制算法,MarkSweepCompact表示垃圾回收机制的标记-清除-压缩算法,1426 collections表示回收的数量;
4. 右下角的图案,Heap内存区包括:年轻代Eden Space、存活代Survivor Space和老年代Tenured Gen;Non-Heap内存区包括:代码缓存区Code Cache和持久代Perm Gen;可通过改变下拉框或者直接点击图形实现切换。
1.2.3 Threads
1. Peak表示最大的线程数,这个数值可以通过更改<tomcat_home>/conf/server.xml下的maxThreads来更改;
2. 点击具体的Thread之后,我们可以看到它的方法栈的详细调用情况;
3. 点击Detect Deadlock可以检测是否有死锁。
1.2.4 Classes
关注点:类的数量变化。
1.2.5 VM Summary
关注点1:上面几栏是关于系统和项目的概要信息;
关注点2:最下面一栏的第一项是tomcat设定的JVM参数,如果你想知道你设置的参数有没有成功启用,看这里就对了。
1.2.6 MBeans
关注点1:Attributes显示该bean的详细细节;
关注点2:Operations显示该bean的所有方法,可以点击该按钮触发方法,但个人不推荐这么做,应该通过程序的统一入口来触发。