In the last several weeks we've been seeing a lot of confluence instabilities at wikis.sun.com - all of them were related to running out of heap space. Several iterations of increasing Xmx didn't help (we started at 3GB and now we are at 5GB and 64bit JVM).
I took several memory dumps during outages and analyzed them with Eclipse Memory Analyzer, which repeatedly found two issues:
- SAXParser memory leaks
- hundreds of instances of net.sf.hibernate.impl.SessionImpl retaining 750MB+ heap memory
At the same time I see that the dump contains total of 163 threads. Given that Confluence uses OpenSessionInView pattern, I'd expect to see less than 163 live session instances (since not all the threads are j2ee service threads).
I'm attaching some annotated screenshots from Eclipse Memory Analyzer.