可以从命令行检索 jconsole 数据吗?

我目前正在使用监视 Java 应用程序的性能指标,并希望编写此数据采集的脚本jconsole

有没有办法将这些 VM 指标(堆内存使用情况、线程计数、CPU 使用率等)检索到 ?
其中的数据并不能完全削减它。STDOUTtop -p PID -b -n 1

谢谢


答案 1

jconsole只是围绕平台中的JMX MBeans提供了一个包装器。MBeanServer

可以使用 Attach API 编写一个程序来连接到 VM,然后该 API 将查询 MBean。

或者,您可以通过 RMI 公开平台并以这种方式查询 MBean。MBeanServer

有关详细信息,请参阅 java.lang.management


答案 2

也许jvmtop值得一看。
它是一个命令行工具,为多个指标提供实时视图

VM 概述模式的示例输出:

 JvmTop 0.4.1  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46

推荐