How to get Java8 Metaspace dump (not heap dump)

2019-02-08 16:57发布

问题:

Are there any tools that are able to get Metaspace dump from a Java8 hotspot vm ?

回答1:

It seems you encounter a class loading leak.
Use

  • jmap -clstats PID to dump class loader statistics;
  • jcmd PID GC.class_stats to print the detailed information about memory usage of each loaded class. The latter requires -XX:+UnlockDiagnosticVMOptions.

The heap dump will also help, because each class in the Metaspace has a corresponding java.lang.Class instance in the heap.