JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具。Jconsole可以用于监控内存和线程。一、可视化监控工具(Jconsole)的使用 1、进入jdk的bin目录,找到jconsole。exe程序。如下图 双击jdkbin目录下的jconsole。exe程序打开jvm可视化监控工具 2、设置密码文件和权限 在jdkjrelibmanagement中将jmxremote。password。template复制一份重命为 jmxremote。password。修改最后两行,将 monitorRoleQED controlRoleRD 前面的号去掉 然后修改jmxremote。password的文件权限为仅当前用户完全控制,所有者为当前用户 3、启动JMX服务器 l测试代码: 4、启动JConsole 5、模块介绍 1)概览 l概要界面,主要显示堆内存使用情况、活动线程数、加载类数、CPU使用率四个参数的概要,可以通过下拉框来定制显示的时间范围 l假如堆内存的图像一直在上升而没有下降的动作发生,则要怀疑是否内存泄露。健壮的项目由于GC的存在,所以它的上升和下降的幅度应该大抵相同 lCPU的图像规律跟堆内存的大致相同 2)内存 l图示为被监控程序的详细内存图 l点击右上的执行GC按钮可以通知JVM进行垃圾回收,执行的是FullGC,实质是把垃圾回收队列的优先级提高 lGC时间显示了垃圾回收的时间以及回收数,上面的是YoungGC执行的时间和次数,下面的是FullGC执行的时间和次数 l右下角的图案,Heap内存区包括:年轻代EdenSpace、存活代SurvivorSpace和老年代TenuredGen。NonHeap内存区包括:代码缓存区CodeCache和持久代PermGen;可通过改变下拉框或者直接点击图形实现切换。 3)线程 l峰值表示最大的线程数 l点击具体的线程之后,我们可以看到它的状态以及方法栈的详细调用情况 l点击检查死锁可以检测是否有死锁 3)类 关注点:类的数量变化 4)VM概要 l上面几栏是关于系统和项目的概要信息 l最下面一栏的第一项是设定的JVM参数,如果你想知道你设置的参数有没有成功启用,看这里就对了 4)MBean 操作显示该bean的所有方法,可以点击该按钮触发方法,但个人不推荐这么做,应该通过程序的统一入口来触发