JVM crashes when eden space is 100%

12,139

You run out of memory. You set the heap size to 2G and the young generation is 500M and old generation is 1500M filling the max 2G it can use (your survivor space is empty but low, they probably too low to get any object from Eden space.

You should try to increase maximum heap size, if you still have issue you will need to monitor your memory usage to check if you don't have any leaks or some process requesting too much new object while the memory usage is already high.

Share:
12,139
adi
Author by

adi

Updated on June 04, 2022

Comments

  • adi
    adi almost 2 years

    I have a production system with a JBoss application server running on JDK 1.6.0_24, JBoss 4.3. Every now and then, the server crashes and a dump file created by the JVM has consistent results:

    {Heap before GC invocations=6421 (full 4675):
      PSYoungGen      total 521536K, used 518784K [0xdbc00000, 0xfbc00000, 0xfbc00000)
      eden space 518784K, 100% used [0xdbc00000,0xfb6a0000,0xfb6a0000)
      
      from space 2752K, 0% used [0xfb950000,0xfb950000,0xfbc00000)
      to   space 2752K, 0% used [0xfb6a0000,0xfb6a0000,0xfb950000)
        
     PSOldGen        total 1572864K, used 1572855K [0x7bc00000, 0xdbc00000, 0xdbc00000)
      object space 1572864K, 99% used [0x7bc00000,0xdbbfdeb8,0xdbc00000)
     PSPermGen       total 524288K, used 92683K [0x5bc00000, 0x7bc00000, 0x7bc00000)
      object space 524288K, 17% used [0x5bc00000,0x61682c30,0x7bc00000)
    81507.318: [Full GC [PSYoungGen: 518784K->518784K(521536K)] [PSOldGen: 1572855K->1572855K(1572864K)] 2091639K->2091639K(2094400K) [PSPermGen: 92683K->92683K(524288K)], 1.5334976 secs] [Times: user=1.53 sys=0.00, real=1.53 secs] 
    Heap after GC invocations=6421 (full 4675):
     PSYoungGen      total 521536K, used 518784K [0xdbc00000, 0xfbc00000, 0xfbc00000)
      eden space 518784K, 100% used [0xdbc00000,0xfb6a0000,0xfb6a0000)
      from space 2752K, 0% used [0xfb950000,0xfb950000,0xfbc00000)
      to   space 2752K, 0% used [0xfb6a0000,0xfb6a0000,0xfb950000)
     PSOldGen        total 1572864K, used 1572855K [0x7bc00000, 0xdbc00000, 0xdbc00000)
      object space 1572864K, 99% used [0x7bc00000,0xdbbfdeb8,0xdbc00000)
     PSPermGen       total 524288K, used 92683K [0x5bc00000, 0x7bc00000, 0x7bc00000)
      object space 524288K, 17% used [0x5bc00000,0x61682c30,0x7bc00000)
    }
    

    for JAVA_OPTS, we've got:

    -server

    -Xms2048m

    -Xmx2048m

    -Dsun.rmi.dgc.client.gcInterval=3600000

    -Dsun.rmi.dgc.server.gcInterval=3600000

    -Dsun.lang.ClassLoader.allowArraySyntax=true

    -XX:NewSize=512m

    -XX:MaxNewSize=512m

    -XX:PermSize=512m

    -XX:MaxPermSize=512m

    -verbosegc

    -XX:+PrintGCDetails

    -XX:+PrintGCTimeStamps

    -XX:+PrintHeapAtGC

    -XX:+CMSPermGenSweepingEnabled

    -XX:-TraceClassLoading

    -XX:-TraceClassUnloading

    So it seems to me like 2GB are enough and there is more memory that can be used, so there shouldn't be any problem.

    any suggestions?