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

Jon*_*han 31 java performance command-line monitoring jconsole

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

有没有办法检索这些VM指标(堆内存使用情况,线程数,CPU使用率等)STDOUT
数据top -p PID -b -n 1并没有完全削减它.

谢谢

Kev*_*vin 12

jconsole只是提供了平台MBeanServer中JMX MBean的包装器.

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

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

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


MRa*_*ser 10

也许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
Run Code Online (Sandbox Code Playgroud)


mat*_*t b 7

看一下jmap,可以用来从控制台获取堆转储.

对于堆转储中未涵盖的数据,我相信jconsole只是使用JMX连接到正在运行的JVM来获取统计信息 - 因此很可能创建自己的应用程序,可以从JMX中提取相同类型的统计信息.


use*_*427 7

您可以通过命令行使用此jmx查询工具:http://crawler.archive.org/cmdline-jmxclient/


Ton*_*nin 5

用于监视Java应用程序的一些其他有用的CLI工具是:

  • Jmxterm提供对应用程序服务器上所有MBean的完全访问权限,以交互方式运行或不运行,
  • jmxbox只能通过TCP套接字连接,而不能直接连接到具有PID的本地进程