I am looking into the various options around garbage collection on a Java 6 18 VM and would like some pointers.
We run our application on JBoss, and occasionally there are the infamous PermGen errors during redeploys. There is a lot of conflicting and obsolete information on the internet about the best way to solve or mitigate this problem.
From what I can see, the following is correct:
I have two questions resulting from this:
CMSClassUnloadingEnabled
and CMSPermGenSweepingEnabled
come into this? From what I can see CMSClassUnloadingEnabled
supercedes or implicitly enables CMSPermGenSweepingEnabled
. Do either of them help with the above problem?Unfortunately, the answers are:
The basic problem is that the GC will not garbage collect a strongly reachable object. You need to figure out why those old application class loaders are still reachable after a redeploy ... and fix the leak.
Alternatively, give up on hot redeployment on your production servers, or restart the web container (e.g. JBoss) more often.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With