On 02/09/2012 09:34 AM, Geoffrey De Smet wrote:
The perm gen space is a subset of the heap space.
So it doesn't make sense to put them on the same value.

Try this instead:
    -Xmx1024m -XX:MaxPermSize=512m
Or, if that fails:
    -Xmx2048m -XX:MaxPermSize=1024m

Sorry to disagree Geoffrey, but PermGen is NOT a part of heap in all (Sun) JVM's that I'm aware of. See

http://stackoverflow.com/questions/2129044/java-heap-terminology-young-old-and-permanent-generations
http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html (the picture a few pages down)

So the sizes are specified separately. But having a MaxPerm of 1G and STILL see PermGen OOM is strange.

The problem could be, that when using the CMS (concurrent mark sweep) GC, PermGen is not collected. I have seen cases where sooner or later OOM PermGen errors happened consistently, until we added

-XX:+CMSPermGenSweepingEnabled
-- 
CU, Joe