JMV监控工具之JConsole
Posted l-test
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMV监控工具之JConsole相关的知识,希望对你有一定的参考价值。
一、简介
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具。下面以对tomcat的监控为例,带领大家熟悉JConsole这个工具。
二、配置
通过JConsole远程连接服务器监控JVM,需要在被监控的服务器上tomcat的启动文件catalina.sh中加入以下配置:
JAVA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.182.130 -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
JMX的相关参数:
参数名 | 类型 | 描述 |
-Dcom.sun.management.jmxremote | 布尔 | 是否支持远程JMX访问,默认true |
-Dcom.sun.management.jmxremote.port | 数值 | 监听端口号,方便远程访问 |
-Dcom.sun.management.jmxremote.authenticate | 布尔 | 是否需要开启用户认证,默认开启 |
-Dcom.sun.management.jmxremote.ssl | 布尔 | 是否对连接开启SSL加密,默认开启 |
-Dcom.sun.management.jmxremote.access.file | 路径 | 对访问用户的权限授权的文件的路径,默认路径JRE_HOME/lib/management/jmxremote.access |
-Dcom.sun.management.jmxremote. password.file | 路径 | 设置访问用户的用户名和密码,默认路径JRE_HOME/lib/management/ jmxremote.password |
三、连接
四、模块介绍
概览
1、概要界面,主要显示堆内存使用情况、活动线程数、加载类数、CPU使用率四个参数的概要,可以通过下拉框来定制显示的时间范围
2、假如堆内存的图像一直在上升而没有下降的动作发生,则要怀疑是否内存泄露;健壮的项目由于GC的存在,所以它的上升和下降的幅度应该大抵相同
3、CPU的图像规律跟堆内存的大致相同
内存
1、图示为被监控程序的详细内存图
2、关注点1:点击右上的执行GC按钮可以通知JVM进行垃圾回收,执行的是Full GC,实质是把垃圾回收队列的优先级提高
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、Peak表示最大的线程数,这个数值可以通过更改<tomcat_home>/conf/server.xml下的maxThreads来更改;
2、点击具体的Thread之后,我们可以看到它的方法栈的详细调用情况;
3、点击Detect Deadlock可以检测是否有死锁。
类
关注点:类的数量变化
VM概要
关注点1:上面几栏是关于系统和项目的概要信息
关注点2:最下面一栏的第一项是tomcat设定的JVM参数,如果你想知道你设置的参数有没有成功启用,看这里就对了
6、MBean
以上是关于JMV监控工具之JConsole的主要内容,如果未能解决你的问题,请参考以下文章
JVM监控及诊断工具之JConsole以及Visual VM
深入理解Java虚拟机——可视化监控工具(Jconsole)线程死锁监控示例
深入理解Java虚拟机——可视化监控工具(Jconsole)线程死锁监控示例
13.8.可视化虚拟机工具--Jconsole内存监控13.9.可视化虚拟机工具--Jconsole线程监控13.10.死锁原理以及可视化虚拟机工具--Jconsole线程