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]