FreeKB - Analyze and respond to a Mule out of memory heap dump on Linux
Analyze and respond to a Mule out of memory heap dump on Linux

Home > Search
  by

Get the PID

If a heap dump is unexpectedly or automatically created, ensure that the JVM associated with the heap dump is still running properly. The heap dump files can be used to determine the PID associated with the heap dump, and then the PID can be used to determine the JVM associated with the heap dump. The heap dump files are in this format:

java_pid<pid>.hprof

 

Is the PID in use

Let's say the PID is 12345. The ps command can be used to determine if the PID is still associated wth the JVM. In this example, the output of the ps command only displays the grep command, which means that the PID is no longer in use, which means that the JVM that was associated with the PID is no longer running, or was automatically restarted as part of the heap dump. If there is a significant amount of output, the JVM is still running. However, the JVM is probably in a bad way. For example, the JVM may be out of memory.

~]# ps -ef | grep 12345
root  12345  1  0  21:54  pts/0  00:00:00  grep 12345

 

Kill the PID if in use

When the JVM is in a bad way, you first will want to kill the PID, and the start the JVM.

~]# kill -9 12345

 

Determine the JVM associated with the PID

You can search the logs with the PID to determine what JVM was associated with the PID. This command will usually produce quite a bit of output, as this command searches every file at and below the specified directory for the string (12345 in this example). This may help you find the JVM that had the PID associated with the heap dump.

~]# grep -R /path/to/logs/directory -ie '12345'

 

Ensure the JVM is running

Once you know the JVM that had the PID with the heap dump, determine if the JVM was restarted. You can check the mule_ee.log file to determine when the JVM was last restarted.

~]# cat mule_ee.log
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Mule is up and kicking (every 5000ms)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

**********************************************************
* default                                    * DEPLOYED  *
* name-373                                   * DEPLOYED  *
**********************************************************

 

Transfer the heap dump

If the heap dump was not caused by an out of memory perm gen space event, then you will want to transfer the heap dump from the Mule server to another PC, such as your personal laptop. You never want to analyze a heap dump on the Mule server, as this will use significant resources, such as memory and CPU, which will impact the performance of the Mule server.

 

Check for a memory leak

If you have a heap visualizer tool, use the tool to determine if there is a memory leak

 

Check the Garbage Collection interval

Check the interval.

 

Analyze the heap dump

Following are popular heap analysis tools:



Add a Comment




We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.




Please enter in the box below so that we can be sure you are a human.




Comments