What does your Apache access_log say at the time when tomcat threads are 
exhausted ? 

I had a very similar issue in my environment. The culprit turned out to be 
JkMount options. Apache was sending all requests, whether it is for static or 
dynamic content to tomcat. At the same time my tomcats locked up, I was seeing 
a lot of requests for static content(gifs in my case) in the apache access_log

Setting up mod_jk to only send *.jsp to tomcats fixed the issue for me. 




________________________________
From: "Jones, Keven" <keven.jo...@ncr.com>
To: "users@tomcat.apache.org" <users@tomcat.apache.org>
Sent: Wednesday, June 10, 2009 11:11:11 AM
Subject: Tomcat maxThreads Issue

Hello,

I have Tomcat (can't figure out what version as the version.sh script is giving 
all kinds of errors) running on separate Linux servers. So an overview of my 
config is
1 web server, 4 app servers (tomcat), and 1 db server.

We were seeing an increase in the httpd processes on the web server to the 
point where I had to increase the MaxClients on the apache 2 server to 2048. I 
finally figured out that the normal number of httpd daemons on the web server 
(50-100) was spiking due to tomcat processes stalling or going completely down.

So I started looking at why tomcat was failing and I found this error message 
in the ACStarError.log :


SEVERE: All threads (200) are currently busy, waiting. Increase maxThreads 
(200) or check the servlet status.
So I checked the server.xml file and found the following:

    <Connector port="81" protocol="HTTP/1.1"
              server="-"
              maxThreads="600" connectionTimeout="20000"
              redirectPort="443" />
<!-- Awele 20070402 For SSL Requests, processed non-SSL,
due to Coyote SSL Accelerator -->
<!--
    <Connector port="443" address="10.5.3.9" protocol="HTTP/1.1"
              server="-"
              secure="true"
              maxThreads="600" connectionTimeout="20000"
                />
-->
    <!-- Define a SSL HTTP/1.1 Connector on port 8443
        This connector uses the JSSE configuration, when using APR, the
        connector should be using the OpenSSL style configuration
        described in the APR documentation -->
    <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" />
    -->

So It looks like the maxThreads has already been increased to 600. The server 
has been rebooted and tomcat stopped/started multiple times. Again all servers 
are Red Hat 5.2. Is there an additional parameter that needs to be set in order 
for tomcat to actually increase the maxThreads ?
Thank You

Keven Jones


      

Reply via email to