tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caldarale, Charles R" <Chuck.Caldar...@unisys.com>
Subject RE: Tomcat 100% CPU usage after moving from Java 5 to 6
Date Tue, 02 Feb 2010 21:49:15 GMT
> From: Christopher Schultz [mailto:chris@christopherschultz.net]
> Subject: Re: Tomcat 100% CPU usage after moving from Java 5 to 6
> 
> It's interesting that there's no timing data for that last statement.
> It /is/ possible this is where the JVM went down. (Did it go down?)

That's very suspicious.  I'm wondering if the OS killed the process just because it asked
for timing information in a bad way?  (E.g., have some counters overflowed?)

> Both of these GC runs seem to be collecting a /lot/ of garbage:
> 3272635K->747297K

Completely understandable given the large heap size.  Note that the term "garbage collection"
is somewhat of a misnomer these days; it's the live objects that are collected and moved -
the dead ones are simply ignored.

> I don't believe the GC will do "serial" collections unless explicitly
> told to do that. The days of "stop the world" garbage collection are
> long gone.

Not true; "stop the world" is still the default, but the pause time is a lot shorter than
it used to be.  (I'd avoid the use of the word "serial" here, since the GC default is parallel,
but not concurrent.)  Regardless, I would try removing the concurrent GC settings and see
if the problem disappears.

> > And also the +DisableExplicitGC?
> 
> That only causes the JVM to ignore calls to System.gc(), which aren't
> guaranteed to do anything, anyway. Unless you are deploying unknown
> webapps, this probably isn't doing anything at all.

There is some Sun-provided RMI code that still insists on calling System.gc() for no particular
reason, so disabling the explicit calls is a good idea.

> If the GC were running like crazy, I suspect you'd see more
> CPU usage.

Definitely.  This does not have the feel of a GC problem, but rather something broken in JVM
native calls to the OS causing abrupt process termination.  Since your CPU utilization doesn't
seem to be a problem, is there any detailed OS logging you can enable to trace the calls to
the kernel?

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus
for use only by the intended recipient. If you received this in error, please contact the
sender and delete the e-mail and its attachments from all computers.

Mime
View raw message