b.henr...@pepperone.be wrote:
> We have sometimes Tomcat (5.x) who consume all the CPU (or 50 %) of the
> CPU constantly in our productions servers (Linux or Windows).

Adding to the thread dump mentioned by Leon, on Linux you can run
"ps -fLp <tomcat_pid>"
to see CPU time usage per thread. Running this twice in a row
(with f.ex. 10 second interval) should show you which of the
threads is consuming the CPU (supposing it's just a single thread).
Combining this with the stack dumps form "kill -QUIT" should
help you pinpoint the bad thread.

> Our applications aren't doing anything and the only solution is to
> restart Tomcat.

That sounds like a deadlock of some kind (or it could also be JVM
memory exhaustion, in which case you should see the garbage collector
thread as the one taking up the CPU). Both could well be caused by
the code you run on Tomcat.

> However, we set heap (between 1GO and 2GO) like this: Xmx = Xms <
> [physical memory available] when the server starts, so Tomcat shouldn't
> have disk swapping problem. (Am I wrong?) But other services can eat the
> memory and the server can begin to swap...

Regardless of Xms/Xmx the OS could well choose to page parts of
the Java process to disk, if there's OS level memory shortage.

By setting Xms and Xmx equal you simplify the JVM internal memory
management (no need to run the logic do decide whether the overall
memory allocation should be increased or decreased, and apparently
a number of other memory handling checks, too). So, with this
configuration there's just one, fixed, memory allocation limit for
JVM.
-- 
..Juha

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to