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