Can jconsole data be retrieved from the command li

2019-01-14 15:08发布

I am currently using jconsole to monitor performance metrics of my Java application and would like to script this data acquisition.

Is there a way to retrieve these VM metrics (heap memory usage, thread count, CPU usage etc.) to STDOUT?
The data in top -p PID -b -n 1 doesn't quite cut it.

Thanks

9条回答
ゆ 、 Hurt°
2楼-- · 2019-01-14 15:58

jstack offers a number of useful bits of information in its normal output. Heap memory usage is directly available, broken down by GC region; thread count could be determined with a little bit of perl / grep / etc.

查看更多
我想做一个坏孩纸
3楼-- · 2019-01-14 15:59

Maybe jvmtop is worth a look.
It's a command-line tool which provides a live-view for several metrics.

Example output of the VM overview mode:

 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
查看更多
霸刀☆藐视天下
4楼-- · 2019-01-14 16:00

You might find jvm-mon useful for this. It is a JVM monitoring tool for the command line that disaplys:

  • jvm processes
  • cpu and GC usage
  • heap usage and size
  • top threads

The metrics and charts update while the tool is open.

Sample: jvm-mon

查看更多
登录 后发表回答