How to get heap usage using jstat?

X. Wo Satuk picture X. Wo Satuk · May 2, 2017 · Viewed 19.6k times · Source

I'm running jstat -gc (from OpenJDK):

# jstat -gc 1
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
287744.0 290304.0 88368.6  0.0   1469440.0 787186.5 2162176.0  1805969.7  945432.0 923880.4 136576.0 133284.0    268   32.797  21     30.089   62.886

How to read:

  1. used heap

  2. heap size

  3. max heap

from this output, just like shown by VisualVM?

Answer

S. D. picture S. D. · May 21, 2017

See https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html for general reference.

Current heap size would be the sum of all the fields that end with "C" - S0C, S1C, EC, OC (except for metaspace which is the fields that start with "M")

Used heap would be the sum of all the fields that end with "U" - S0U, S1U, EU, OU (again, except metaspace).

Note that the "C" values (current) are greater than or equal to "U" values (actually used).

To get maximum values run jstat with the -gccapacity flag and add up all the fields that end with "MX" (NGCMX, OGCMX, ... except for MCMX which is metaspace).