Anyone know what exactly what kind of GC the "Perform GC" button in Jconsole does?
I had a Tomcat instance that I'd been monitoring since yesterday morning, because the end users were getting some "interesting" OOM errors. The initial work was mostly in the Eden space and Survivor spaces for most of the day, then suddenly, a big chunk (nearly 4GB) ended up in the Old Gen space and pretty much stayed there all night. During that time, the Survivor space was mostly flat, with the Eden space showing slow constant growth (45 degree angle) with period resets to near zero. So I came in this morning, and saw this pattern, and knowing that the customer was not using the system yet, pressed the "Perform GC" button and was "surprised" that the memory usage dropped to near zero. Reviewing the individual graphs showed that the bulk of the retrieved memory was from the Old Gen space. It had been consistently flat at close to 4.0 Gb since about 4:00 pm until I did the GC, which dropped it to near zero use. Looking at the other individual graphs showed that there had been several instances of GC performed by the JVM during that time, but it took my manual instance to clear the Old Gen. Is this just "normal" JVM GC processing? Does it not gc a Gen unless it is nearly full? It's been awhile since I read the Sun docs on the subject, so it might be something in the way Java 6 is architected. Jeff __________________________________________________________________________ Confidentiality Notice: This Transmission (including any attachments) may contain information that is privileged, confidential, and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this transmission in error, please immediately reply to the sender or telephone (512) 343-9100 and delete this transmission from your system.