I have a production system with a JBoss application server running on JDK 1.5.0_15-b04 and Redhat Linux.
Every now and then, the server crashes and a dump file created by the JVM has consistent results:
PSYoungGen total 164224K, used 164223K [0xa2e80000, 0xad7f0000, 0xb1200000)
eden space 158272K, 100% used [0xa2e80000,0xac910000,0xac910000)
from space 5952K, 99% used [0xacb00000,0xad0cffb8,0xad0d0000)
to space 7296K, 33% used [0xad0d0000,0xad33bde0,0xad7f0000)
PSOldGen total 747904K, used 472772K [0x31200000, 0x5ec60000, 0xa2e80000)
object space 747904K, 63% used [0x31200000,0x4dfb1100,0x5ec60000)
PSPermGen total 131072K, used 58251K [0x29200000, 0x31200000, 0x31200000)
object space 131072K, 44% used [0x29200000,0x2cae2d98,0x31200000)
It seems that the partition on the heap reserved for young objects (eden space) is all used up.
However, the settings for the JVM are:
-Dprogram.name=run.sh -XX:PermSize=128m -XX:MaxPermSize=128m -XX:-HeapDumpOnOutOfMemoryError -Xms512m -Xmx2048m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/var/lib/jbossas/lib/endorsed
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.
Am I missing something?