Java monitoring for the command-line, profiler included
Java Other
Latest commit 5693965 Oct 20, 2016 @patric-r committed on GitHub Merge pull request #88 from Herschdorfer/master
added UNIX eol style for
Failed to load latest commit information.
.settings adjusted code template preferences Jul 21, 2015
doc Update Jul 28, 2015
src/main mavenizing jvmtop Sep 16, 2015
.gitattributes added eol styles Oct 20, 2016
.gitignore mavenizing jvmtop Sep 16, 2015
INSTALL mavenizing jvmtop Sep 16, 2015
LICENSE mavenizing jvmtop Sep 16, 2015 Update Oct 20, 2015
pom.xml added maven-source-plugin to build Oct 20, 2015

jvmtop is a lightweight console application to monitor all accessible, running jvms on a machine.
In a top-like manner, it displays JVM internal metrics (e.g. memory information) of running java processes.

Jvmtop does also include a CPU console profiler.

It's tested with different releases of Oracle JDK, IBM JDK and OpenJDK on Linux, Solaris, FreeBSD and Windows hosts.
Jvmtop requires a JDK - a JRE will not suffice.

Please note that it's currently in an alpha state -
if you experience an issue or need further help, please let us know.

Jvmtop is open-source. Checkout the source code. Patches are very welcome!

Also have a look at the documentation or at a captured live-example.

 JvmTop 0.8.0 alpha   amd64  8 cpus, Linux 2.6.32-27, load avg 0.12

 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


Click on the releases tab, download the most recent tar.gz archive. Extract it, ensure that the JAVA_HOME environment variable points to a valid JDK and run ./

Further information can be found in the INSTALL file

08/14/2013 jvmtop 0.8.0 released


  • improved attach compatibility for all IBM jvms
  • fixed wrong CPU/GC values for IBM J9 jvms
  • in case of unsupported heap size metric retrieval, n/a will be displayed instead of 0m
  • improved argument parsing, support for short-options, added help (pass --help), see issue #28 (now using the great jopt-simple library)
  • when passing the --once option, terminal will not be cleared anymore (see issue #27)
  • improved shell script for guessing the path if a JAVA_HOME environment variable is not present (thanks to Markus Kolb)

Full changelog

In VM detail mode it shows you the top CPU-consuming threads, beside detailed metrics:

 JvmTop 0.8.0 alpha   amd64,  4 cpus, Linux 2.6.18-34

 PID 3539: org.apache.catalina.startup.Bootstrap
 ARGS: start
 VMARGS: -Djava.util.logging.config.file=/home/webserver/apache-tomcat-5.5[...]
 VM: Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM 1.6.0_25
 UP: 869:33m #THR: 106  #THRPEAK: 143  #THRCREATED: 128020 USER: webserver
 CPU:  4.55% GC:  3.25% HEAP: 137m / 227m NONHEAP:  75m / 304m
  TID   NAME                                    STATE    CPU  TOTALCPU BLOCKEDBY
     25 http-8080-Processor13                RUNNABLE  4.55%     1.60%
 128022 RMI TCP Connection(18)-10.101.       RUNNABLE  1.82%     0.02%
  36578 http-8080-Processor164               RUNNABLE  0.91%     2.35%
  36453 http-8080-Processor94                RUNNABLE  0.91%     1.52%
     27 http-8080-Processor15                RUNNABLE  0.91%     1.81%
     14 http-8080-Processor2                 RUNNABLE  0.91%     3.17%
 128026 JMX server connection timeout   TIMED_WAITING  0.00%     0.00%

Pull requests / bug reports are always welcome.