Good Memory Monitoring Tool for Java in Linux Environment

5,150

Solution 1

You can use VisualVM to monitor memory usage in Java processes. As well as monitoring the overall heap it also includes a memory profiler so you can see what objects are using the most memory.

It is also included in the latest JDK as jvisualvm.

Solution 2

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

Example output of the VM overview mode:

 JvmTop 0.3 alpha (expect bugs)  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
Share:
5,150

Related videos on Youtube

Alan
Author by

Alan

Updated on September 17, 2022

Comments

  • Alan
    Alan over 1 year

    I am trying to monitor the memory usage of my java program. As of now I am using 'Top'. Top is a command line tool that shows you the memory usage of your program. The out put example will is similiar as the following:

    $# top -p <pid>
    

    Output:

    PID: <PID>
    User: <user>
    VIRT: 513M 
    %MEM: 25.1
    

    I am trying to find a better memory monitoring tool that can show me what are the java objects that resides in the memory, their size, etc.