7.1 Extracting Heapdump
This topic describes about the troubleshooting information to extract Heapdump.
Heap Dump
A heap dump is a snapshot of objects that are in memory in the JVM at a certain timestamp in a transaction. Heap dumps help to troubleshoot memory-leak problems and optimize memory usage in microservices. Heap dumps are usually stored in binary format hprof files.
The HeapDumpOnOutOfMemoryError command-line option that generates a heap dump when a java.lang.OutOfMemoryError is thrown can be used to generate heap dumps:
java -XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=<file-or-dir-path>
Alternatively, one can setup remote heap monitor to observe the memory leaks in the product. Perform the following steps:
- To enable jmx, set the following environment variable to start jmx:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Note:
If the above variable are set, a jmx service will start on specified port. - Setup JVisualVM as follows, to collect heap dumps:
- Start JVisualVM.
- Under Remote option, add a host.
- Under new host, add new jmx connection.
Note:
With this setup, the JAVA process can be monitored remotely.
Parent topic: Troubleshooting OutOfMemory Issues