How to take a heap dump in windows with minimum downtime? How to take a heap dump in windows with minimum downtime? elasticsearch elasticsearch

How to take a heap dump in windows with minimum downtime?


After you've taken the coredump by WinDbg, you need to extract the heap dump from it by running

jmap -heap:format=b "C:\Program Files\Java\...\bin\java.exe" core.mdmp

This could be done offline; no interaction with running Java process needed. Then you will be able to open the generated heap.bin in VisualVM.


Alternatively you may take the class histogram. It is produced a way faster than full heap dump.

jmap -histo <PID>

It shows you the list of classes whose instances occupy the most space in the heap. This information is often enough to get the idea of where's the memory lost.