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.

Reply via email to