Profile Image
manni

OutOfMemoryError due to memory usage or individual large request to the application?

Dear all,

 

today we had a OutOfMemory on our new application. I see the GC report for this Tomcat application the first time. I am not sure if the OOM dump at 07. Jan 06:35 was a result of a continous build up of memory usage over the last day(s), or if it was more likely due to some individual large requests to the (web application). If you have any feedback on the indications in the report (also in general), that would be great. Thanks in advance.

 

Manni



Report URL - https://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMjEvMDEvNy8tLU1taS1nYy0yMDIxLTAwNC5sb2ctLTktMzktMjU=&channel=WEB

  • outofmemoryerror

Please Sign In or to post your comment or answer

Profile Image

Ram Lakshmanan

Hello Mani!

 

Below is the heap usage graph from the GCeasy report you had sent:

 

 

 You can see that your heap usage has been constantly growing since Jan' 04, 2020. It's an clear indication your application your application is suffering from acute memory leak. Good thing is your application is having acute memory leak, had it been aggressive memory leak, you might have experienced OutOfMemoryError much earlier than Jan' 07.  

 

 If your application doesn't have memory leak then heap usage graph should have perfect saw-tooth pattern like the graph shown below. You can see in the below graph, when Full GC runs, memory usage is dropping all the way to bottom. This is not the pattern seen in your application.

 

 

 What are the next steps?

 

 Since it's confirmed your application is having acute memory leak, you can use heap dump analysis tools like HeapHero to identify memory leak in your application and fix it.

 

Profile Image

Mahesh

Hi Manni!

 

I would like to add one more point to @Ram Lakshaman's answer. If you see the Reclaimed graph which is under the interactive graphs section, you will see repeated full GC happened and it couldn't reclaim memory. 

 

Please check the following screen recording clip: https://www.loom.com/share/2e2b713b656a42e29f49d61509e4c613

 

 

Thank you!

 

 

Profile Image

manni

Dear Ram, Mahesh,

 

thanks a lot for your valueable feedback. (And sorry for not responding earlier). Manesh, I guess what you pointed out sounds like a consequence of what Ram explained ... the memory leaking behaviour of the application (Tomcat, JMS; Java Web application), that consumes more and more heap space, until Full GC can't free anything. I am not yet familiar with this new application that we have. But I just received an info from my colleague that did a Heap analysis (Eclipse MAT) and it shows as attached below. He has raised the issue with the support team to check (and I pointed him also to HeapHero :-) ).

 

Thank you for your help.

Manni

 

Heap analysis : 

One instance of "org.apache.activemq.SimplePriorityMessageDispatchChannel" loaded by "org.apache.catalina.loader.WebappClassLoader " occupies 4,134,782,352  -- 99.13% --  bytes. The memory is accumulated in one instance of "java.util.LinkedList" loaded by "<system class loader>".

 

Accumulated Objects in Dominator Tree 
Class Name Shallow Heap Retained Heap Percentage


org.apache.activemq.SimplePriorityMessageDispatchChannel 
32 4,134,782,352 99.13%
\
java.util.LinkedList[10] 
56 4,134,782,320 99.13%
.\
java.util.LinkedList 
32 4,134,781,976 99.13%
..+
java.util.LinkedList$Node 
24 31,536 0.00%

....

Profile Image

Ram Lakshmanan

Hello Manni!

 

 Based on your response it looks like "org.apache.activemq.SimplePriorityMessageDispatchChannel" is activemq is the culprit. Because it's occupying 99% of your memoy What version of the activemq are you using? 

Got something else on mind? Post Your Question

Not the answer you're looking for? Browse other questions tagged
  • outofmemoryerror