Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-19093

[GSS](7.4.z) memory growth when starting huge number of EJB timers on EAP

XMLWordPrintable

      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.

            cfang@redhat.com Cheng Fang
            rhn-support-hmiura Hiroko Miura
            Gonzalo Muñoz Fernández Gonzalo Muñoz Fernández
            Gonzalo Muñoz Fernández Gonzalo Muñoz Fernández
            Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: