1、简介java
JConsole是一个基于JMX的GUI工具,用于链接正在运行的JVM,它是Java自带的简单性能监控工具。下面以对tomcat的监控为例,带领你们熟悉JConsole这个工具。缓存
2、配置tomcat
经过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 |
3、链接加密
4、模块介绍spa
概览线程
一、概要界面,主要显示堆内存使用状况、活动线程数、加载类数、CPU使用率四个参数的概要,能够经过下拉框来定制显示的时间范围code
二、假如堆内存的图像一直在上升而没有降低的动做发生,则要怀疑是否内存泄露。健壮的项目因为GC的存在,因此它的上升和降低的幅度应该大抵相同
三、CPU的图像规律跟堆内存的大体相同
内存
一、图示为被监控程序的详细内存图
二、点击右上的执行GC按钮能够通知JVM进行垃圾回收,执行的是Full GC,实质是把垃圾回收队列的优先级提升
三、GC 时间显示了垃圾回收的时间以及回收数,上面的是Young GC执行的时间和次数,下面的是Full GC执行的时间和次数
四、右下角的图案,Heap内存区包括:年轻代Eden Space、存活代Survivor Space和老年代Tenured Gen。Non-Heap内存区包括:代码缓存区Code Cache和持久代Perm Gen;可经过改变下拉框或者直接点击图形实现切换。
线程
一、“峰值”表示最大的线程数,这个数值能够经过更改<tomcat_home>/conf/server.xml下的maxThreads来更改
二、点击具体的线程以后,咱们能够看到它的状态以及方法栈的详细调用状况
三、点击“检查死锁”能够检测是否有死锁
类
关注点:类的数量变化
VM概要
一、上面几栏是关于系统和项目的概要信息
二、最下面一栏的第一项是tomcat设定的JVM参数,若是你想知道你设置的参数有没有成功启用,看这里就对了
MBean
属性显示该bean的详细细节
操做显示该bean的全部方法,能够点击该按钮触发方法,但我的不推荐这么作,应该经过程序的统一入口来触发