Prod Box is:
- Debian kernel 2.6
- Bi-Xeon 3.2 Ghz - 1 GB Ram
- Apache 2.0 - prefork - maxclients = 256 - keealive = false - around
300 request/sec
- Tomcat 5.0 - mod_jk 1.2.18 - 512 Mb allocated.
- JDK 1.5

MySQL is on another separate box.

Web app is an ad server serving all requests through servlets giving
mainly HTML and gif.

At normal charge, around 50 threads are created on tomcat and around
40 are working, others are waiting (. CPUs are around 20% each mainly
for Tomcat.

We are developing a new servlet which goal is to generate a png file
from XHTML using Flying Saucer xhtmlrenderer. This one is using AWT
for the XHTML and CSS rendering.

When I'm testing the new servlet on my dev box, all is ok. When i'm
running the same servlet on the prod box, Tomcat is reaching almost 2
x 100% CPUs for about 4 to 7 seconds. During this time, many threads
are created (to the max, around 256 - see maxclients config). All
Apache sockets are busy and slowing down. After that, sockets are
released and Tomcat is working well again after few seconds.

BUT !! CPUs stay around 2 x 40%. When I dump JVM Tomcat, around 140
threads are still
remaining. 40 are working and around 100 are waiting in the thread pool.

My questions are:
- why CPUs stay busy whereas the same threads number are working in both case ?
- is it possible that's because the notifyall() on these 100 extra threads ?
- if yes, how can I ask Tomcat to kill these non working threads ?
- if no ... any idea ?

Thanks for your help.

--
Pascal Alberty
http://pascal.albertyorban.be

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to