Thanks Dan and p Sure, i will collect the thread dump once it happens again. Mean while here my server.xml content related to executor and connectors:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50"/> <Connector enableLookups="false" executor="tomcatThreadPool" port="http port" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="https port" address="ip address"/> <Connector enableLookups="false" executor="tomcatThreadPool" port="http port" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" address="ip address" keystoreFile="path to cert" keystorePass="password" /> I understand what you are saying regarding the application owned threads, but do they show in the access logs with the prefix i mentioned for tomcatThreadPool (i saw in access logs as catalina-exec-770) ? Please let me know if im missing anything or doing anything wrong in my configuration. I will check on the thread dump once i collect it. Thanks -G ________________________________ From: Pid <p...@pidster.com> To: Tomcat Users List <users@tomcat.apache.org> Sent: Monday, January 23, 2012 6:12 AM Subject: Re: Tomcat 6.0.35 -crossing maxThreads configured count On 23/01/2012 14:06, Daniel Mikusa wrote: > On Mon, 2012-01-23 at 05:44 -0800, gnath wrote: >> Hi all, >> >> >> We have Tomcat 6.0.35 in our production Environment running on Linux, and we >> have configured to use tomcatThreadPool with maxThreads=500 and >> minSpareThreads=50 with default connectionTimeout(which is 60000 sec). > >> We have two connectors (http and ssl) It has been giving some problems like >> 'too many open files' or just hangs once in a while which requires a restart >> to get back to normal. > > Have you taken any thread dumps when the server hangs? What do you see? > >> >> >> Recently i happened to check our access logs when the server hung and >> stopped responding. We were printing the thread number in the logs and i >> have seen the number going upto 770 (though the max is configured at 500). I >> was under impression that the threads will be shared among the connectors >> and max it can go to 500. Could you please explain why im seeing very high >> number than configured? Is that maxThreads value per connector? > > It would help to see how you have your thread pool and connectors > configured. Please attach your server.xml minus any comments. > > Also, a thread dump would be nice to confirm how many threads were > actually running. The maxThreads in the Connector only applies to Tomcat request processing threads, it is not a limit imposed on the whole JVM. You will usually have 20-30 threads running doing various things in addition to those that your app starts. If Tomcat is at 500 + 20 then the rest are likely to be started by your application or dependencies. As Dan states, a thread dump is the way to understand this. p -- [key:62590808]