Hello group,

 

currently I am analyzing an OOM crash of a productive broker (ActiveMQ Artemis 
2.28). The broker ran under 64 bit OpenJDK 17.0.9+9 (Temurin) with 4GB of heap 
configured via -Xmx VM option and G1 garbage collector.

In the analyzer histogram I can see, that there are 5 big consumers of the VM’s 
heap. Four of those are very much the same:

 

1.      One instance of 
org.apache.activemq.artemis.core.paging.cursor.impl.PageSubscriptionImpl 
occupies 777.531.896 (18,18 %) bytes. The memory is accumulated in one instance 
of java.util.TreeMap$Entry which occupies 327.069.808 (7,65 %) bytes.
2.      One instance of 
org.apache.activemq.artemis.core.paging.cursor.impl.PageSubscriptionImpl 
occupies 777.531.896 (18,18 %) bytes. The memory is accumulated in one instance 
of java.util.TreeMap$Entry which occupies 327.069.808 (7,65 %) bytes.
3.      One instance of 
org.apache.activemq.artemis.core.paging.cursor.impl.PageSubscriptionImpl 
occupies 777.531.896 (18,18 %) bytes. The memory is accumulated in one instance 
of java.util.TreeMap$Entry which occupies 327.069.808 (7,65 %) bytes.
4.      One instance of 
org.apache.activemq.artemis.core.paging.cursor.impl.PageSubscriptionImpl 
occupies 777.531.896 (18,18 %) bytes. The memory is accumulated in one instance 
of java.util.TreeMap$Entry which occupies 327.069.808 (7,65 %) bytes.

 

The fifth seems to be closely related to these four:

19 instances of java.util.TreeMap$Entry occupy 777.531.504 (18,18 %) bytes. 

Biggest instances:

*         java.util.TreeMap$Entry @ 0x7584c1ce8 - 231.178.240 (5,41 %) bytes. 

*         java.util.TreeMap$Entry @ 0x7094185d8 - 220.148.272 (5,15 %) bytes. 

*         java.util.TreeMap$Entry @ 0x77c22a440 - 116.097.024 (2,71 %) bytes. 

*         java.util.TreeMap$Entry @ 0x796469d78 - 103.186.432 (2,41 %) bytes. 

*         java.util.TreeMap$Entry @ 0x7c8c1e078 - 53.215.232 (1,24 %) bytes. 

Most of these instances are referenced from one instance of 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1 which occupies 
1.282.832 (0,03 %) bytes. 

 

The analyzer states

            Common Path To the Accumulation Point:

org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1 @ 0x79e40f078 
Thread-1 
(ActiveMQ-PageExecutor-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$9@4aeaadc1)
 <mat://object/0x79e40f078>  Thread

 

After a restart of the broker after 6 hours the memory consumption is still at 
< 300 mb.

 

Can someone tell me what the cause of this OOM exception might be (excessive 
paging, fast reconnects, zombie sessions, …)?

 

 

Kind regards
Sebastian Götz



 

Reply via email to