jconsole

首先要说的是:性能组真的太强大。在性能组的第二天,就接触到一个工具。回家找各方资料熟悉学习,总结如下,希望对大家有帮助。

Jconsole是一个JMX兼容的监视工具,一个基于JMX的GUI工具,能够监控运行在java平台的应用程序的性能和资源耗费情况,能够提供相对全面的系统监控功能。它可以监控本地应用程序和远程应用程序。其中:JVM要设置为可管理的模式启动,通过Jconsole命令启动Jconsole,一个用于连接的对话框将会打开,如图:

其中:本地进程—-列出了所有本地正在运行的JVM进程,以及进程对应的ID 信息;远程进程—-添加的URL通过RMI连接器连接到一个JMX代理。

  1. 监控 内存

如下图:

Jconsole上的信息展现:

概述:监控JVM和一些监控变量的信息;

内存:内存使用信息

线程:线程使用信息

类:类调用信息

VM摘要:JVM的信息

Mbean:所有Mbean的信息

2. 关于 Mbean:获取所有平台的信息,包括那些不能从其他项中获取的信息。特别注意:前面几项的信息也会在Mbean这里显示。内存的Mbean包括四个属性:

(1) HeapMemoryUsage:用于描述当前堆内存使用情况的只读属性;

(2) NonHeapMemoryUsage:用于描述当前的非堆栈内存的使用情况的只读属性;

(3) ObjectPendingFinalizationCount:用于描述有多少对象被挂起以便回收;

(4) Verbose:用于动态设置GC是否跟着详细的堆栈信息。为一个布尔变量。

如下图,

Jconsole通过读取内存系统、内存池、垃圾回收的信息来获取对内存消耗、内存池、垃圾回收的统计情况,如图:

例子:

在Mbean可以设置内存池中Tenured Gen的UsageThreshold值。正常情况下,内存标签中显示的柱状图为绿色,当超过设定的UsageThreshold值,柱状图为红色。如下图:

2. 死锁检查

(1)线程标签提供关于应用的线程运行信息。如下图:

左下角红色框内,为正在运行的线程列表,在检索区呢输入单个字符可以快速查找包括字符的线程,获取这个线程的相关信息。

(2)在Mbean标签中,提供了一些关于Thread标签的详细信息。如下图中,

Threading对应的操作中:findMonitorDeadlockedThreads:显示如果发生死锁或者应用挂起,返回一组死锁线程的ID。具体操作:点击,会弹出一个返回框

另一个重要的操作:getThreadCpuTime可以返回指定线程消耗的CPU时间。该目录下的其他操作项,也是对线程信息的显示,可以结合实际需要查询。

3. 日志管理

Mbean中提供了对log的操作。getLoggerLevel和setLoggerLevel可以管理log的等级。

先总结这么多,Jconsole功能很强大,希望这个小结对大家有帮助,继续挖掘Jconsole更多其他功能。

VN:F [1.9.7_1111]

你可能感兴趣的:(jvm,thread,多线程,F#)