PermGen in Java 6
When you switch your environment to Java 6, don’t forget to increase the PermGen size in the JVM configuration. PermGen means Permanent Generation which is the third generation in JVM memory.
Some servlet containers (Tomcat, JBoss, Resin) don’t release user generated Java classes after a context reload. Fatwires ContentServer creates a lot of user generated Java classes, when you are using Assets of type Recommendation.
Thus a context relaod can cause a “java.lang.OutOfMemoryError: PermGen space” error.
To set the correct size (and don’t forget to add a little buffer), you should analyse the PermGen space with tools like Jconsole (which I prefer). Run a test against your web application and persuade ContentServer to load as many assets as possible into its memory. If your system doesn’t go down with a OutOfMemoryError then your setup could be well defined … otherwise increase the memory and run the test again.
There are two parameters you can set:
- XX:PermSize=xxxmb (initial PermGen size)
- XX:MaxPermSize=xxxmb (max PermGen size)