JPSE问题诊断指导五——jconsole

JConsole是JDK提供的另一个有用的监视工具,和JMX兼容。该工具使用JVM内置的JMX仪器提供关于运行中的应用的性能和资源消耗的信息。尽管这个工具包含在JDK下载版中,它仍然可以用来监视和管理在JRE中部署的应用。

JConsole工具可以附着到任何Java应用以展示有用的信息,例如线程使用,内存消耗和其它的关系类加载、运行时编译和操作系统的详细信息。

这部分输出帮助高级问题诊断例如内存泄漏,过度类加载和运行中的线程,它对调谐和堆尺寸很有用。

为了监视,JConsole可以用来动态的改变一些运行中系统的参数。例如,-verbose:gc选项可以被改变以便让gc收集信息输出能动态的开关。

下面列举了可以使用jconsole工具监视的数据,每个都对应到工具面板的一个标签:


  • Overview。这个面板展示了堆内存使用,线程数量,类数量和CPU使用率随时间的变化,这个overview可以让你马上看到一些资源的动态情况。
  • Memory。针对一个选定的内存区域(heap,non-heap,各种内存池)。随时间变化的内存使用图,当前内存大小,提交的内存,最大内存;垃圾收集器信息包含执行过的收集次数和总共花费的收集时间;堆和非堆占当前内存的使用百分比。此外,在这个面板你也可以请求GC执行。
  • Threads。随时间变化的线程使用图,存活线程:当前存活线程的数量,自从JVM启动以来的最大存活线程数量,针对一个选定的线程,它的名字,状态和堆栈,死锁检测按钮发送一个请求到目标应用程序以执行一个死锁检测并在单独的标签展示每个死锁。
  • Classes。随时间变化的加载的类数量,当前加载到内存中的类数量,自从JVM启动以来加载到内存中的类总数,包含随后卸载掉了的,自从JVM启动以来从内存中卸载的类总数。
  • VM Summary。常用信息,例如JConsole连接数据,JVM启动时间,JVM消耗的CPU时间,编译器名字和总编译时间等等,线程和类的总结信息,内存和垃圾收集信息,操作系统信息,JVM本身的信息,例如参数和类路径。
  • MBeans。这个面板展示了一个所有在JMX代理中注册的平台和应用的树形结构,当你选中其中一个MBEan时,它的属性,操作,通知和其他信息都会展示出来。你可以调用操作(如果有的话),例如HotSpotDiagnostic MBean的dumpHeap操作,会执行一个堆dump。你可以设置可写的属性的值,还可以订阅通知(如果有的话)。

JConsole可以监视本地应用和远程应用,如果你在参数里面指定JMX代理要连接的地方,那么工具将会自动监视指定的应用。

要监视本地应用,执行jconsole pid命令,pid是应用的进程id。

要监视远程应用,执行jconsole hostname:portnumber,hostname是要运行的应用的主机名,portnumber是JMX代理的端口号。

如果不带参数启动jconsole,那么工具将展示一个连接窗口,你可以指定要监视的本地和远程进程。

如果是最新版的JDK,当启动一个要被监视的应用时不需要指定参数。

转载于:https://my.oschina.net/codefire/blog/372213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值