-
Enhancement
-
Resolution: Done
-
Major
-
7.2.6.GA
This is derived from RHPAM-2805.
When starting huge number of processes, say 40,000 processes, with a high EJB timer(e.g. 7 days), OutOfMemoryError would happen.
The fix of RHPAM-2805 highly reduced heap usage .
Here is heap usage after applying the fix of RHPAM-2805.
Class Name | Objects | Shallow Heap | Retained Heap ---------------------------------------------------------------------------------------------------- java.util.HashMap | 212,498 | 10,199,904 | >= 191,006,816 java.util.HashMap$Node[] | 118,600 | 10,038,000 | >= 188,008,936 java.util.HashMap$Node | 751,616 | 24,051,712 | >= 179,906,752 java.lang.Object[] | 87,446 | 11,212,672 | >= 117,632,848 java.util.ArrayList | 76,025 | 1,824,600 | >= 90,759,480 byte[] | 267,622 | 86,360,696 | >= 86,360,696 java.lang.String | 751,385 | 18,033,240 | >= 84,239,544 java.util.HashSet | 8,373 | 133,968 | >= 74,964,872 org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry| 37 | 888 | >= 71,704,128 org.jboss.as.weld.deployment.BeanDeploymentArchiveImpl | 18 | 1,008 | >= 71,678,992 org.jboss.as.weld.discovery.WeldClassFileServices | 2 | 48 | >= 71,605,400 org.jboss.as.server.deployment.annotation.CompositeIndex | 1 | 16 | >= 71,605,224 org.jboss.jandex.Index | 255 | 8,160 | >= 71,603,712 io.netty.buffer.PoolChunk | 4 | 352 | >= 67,179,192 char[] | 756,115 | 66,977,552 | >= 66,977,552 java.util.Collections$SynchronizedMap | 1,272 | 40,704 | >= 59,383,288 org.jboss.as.ejb3.timerservice.TimerServiceImpl | 1 | 72 | >= 51,565,432 org.jboss.as.ejb3.timerservice.TimerImpl | 44,930 | 3,594,400 | >= 48,164,968 org.jboss.jandex.ClassInfo | 56,458 | 2,709,984 | >= 43,533,920 org.jbpm.services.ejb.timer.EjbTimerJob | 44,930 | 718,880 | >= 34,506,248 org.jbpm.persistence.timer.GlobalJpaTimerJobInstance | 44,930 | 2,156,640 | >= 33,787,376 ----------------------------------------------------------------------------------------------------
i.e 50MB heap is used as retained heap of org.jboss.as.ejb3.timerservice.TimerServiceImpl by 44,930 EJB timers.
There still might be a small window to reduce heap usage further more at EJB timer on EAP saide
and customer requests to improve it if possible.
- clones
-
RHPAM-2805 memory growth when starting a high number of process instances with a high timers
- Closed