QUESTION
How do I collect heap dumps for the DGE component when troubleshooting issues such as Out Of memory (OOM)
RESOLUTION
-install JDK. For example, in CentOS;yum install java-1.6.0-openjdk-devel
-Use netstat -anp to determine DGE component process ID:netstat -anp | grep 7692
tcp 0 0 0.0.0.0:7692 0.0.0.0:* LISTEN 8523/java
In this case the process id is found to be '8523'
-Generate an initial heap dump using 'jmap' (8523 is process id in this example);jmap -dump:format=b,file=/tmp/initial_dge.hprof 8523
Dumping heap to /tmp/initial_dge.hprof ...
Heap dump file created
-Generate a heap dump about an hour later using 'jmap' (8523 is process id in this example);jmap -dump:format=b,file=/tmp/dge_1hs.hprof 8523
Dumping heap to /tmp/second_dge.hprof ...
Heap dump file created
-Generate a heap dump after a crash (in the event logs/oom_dge.hprof is not generated) using 'jconsole' (8523 is process id in this example);
jmap -dump:format=b,file=/tmp/dge_post_crash.hprof 8523
Dumping heap to /tmp/crash_dge.hprof ...
Heap dump file created
The steps below were part of the original article and are no longer applicable:
-Enable heap memory dump on OOM (<TRAVERSE_HOME>/etc/monitor.init):CONFIG="${CONFIG} -Dcom.sun.management.jmxremote.ssl=false"
change toCONFIG="${CONFIG} -Dcom.sun.management.jmxremote.ssl=false"
CONFIG="${CONFIG} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs/oom_dge.hprof"
-Restart DGE component
APPLIES TO
All Linux Traverse versions
REFERENCE
See also Troubleshooting: Generate a thread/stack dump for a Traverse component