tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gnath <gautam_exquis...@yahoo.com>
Subject Re: Tomcat 6.0.35 -crossing maxThreads configured count
Date Mon, 23 Jan 2012 14:52:09 GMT
Sure i will keep monitoring the Thread count as you said using jstack and keep you posted once
the server hangs again.

Thanks
-G



________________________________
 From: Daniel Mikusa <dmikusa@vmware.com>
To: Tomcat Users List <users@tomcat.apache.org>; gnath <gautam_exquisite@yahoo.com>

Sent: Monday, January 23, 2012 6:44 AM
Subject: Re: Tomcat 6.0.35 -crossing maxThreads configured count
 
On Mon, 2012-01-23 at 06:24 -0800, gnath wrote:
> 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) ?

I do not believe that a thread with the name "catalina-exec-770" means
that there are 770 active threads.  It means that the thread you are
looking at is number 770.  The "770" is just an identifier.

>From the docs for Executor:  "The name prefix for each thread created by
the executor. The thread name for an individual thread will be
namePrefix+threadNumber".

You can get a count of the threads being used by your executor with the
following command:

  jstack <tomcat-pid> | grep "catalina-exec-" | wc


Dan

> 
> 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 <pid@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]
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message