You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by uri unger <ur...@gmail.com> on 2011/06/27 12:23:53 UTC

tomcat 7.0.16 - using a thread pool

hi,

i'm using tomcat 7.0.16.
i'm trying to define a thread pool using an Executor/Connector elements as
follows:

  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="6500" minSpareThreads="4"/>
   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               executor="tomcatThreadPool" />

I have also disabled the access log Valve.
Other than these configuration changes, my server.xml file is identical to
the default one bundled in the official release of tomcat.

I'm creating load on the server using 750 threads (on the client side), but
it seems that only 200 threads are handling requests in tomcat, judging by
the performance I get on the client side. Also, using jmx, i see
that Cataline.Executor.tomcatThreadPool.attributes.activeCount=200.

However, If I add maxThreads=6500 to the Connector element as well, I get
the expected performance, and using jmx I can see that the activeCount is
indeed 750 (as expected).

I have expected that specifying an executor in the Connector element should
suffice and that I shouldn't specify a maxThread value as well.

I replicated this behavior in tomcat 7.0.14 as well. In tomcat 7.0.6,
referencing the executor from the connector works as expected (i.e. no need
to re-specify maxThreads).

Is there any rational behind these or is it simply a bug?

uri

Re: tomcat 7.0.16 - using a thread pool

Posted by Mark Thomas <ma...@apache.org>.
On 27/06/2011 11:23, uri unger wrote:
> hi,
> 
> i'm using tomcat 7.0.16.
> i'm trying to define a thread pool using an Executor/Connector elements as
> follows:
> 
>   <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
>         maxThreads="6500" minSpareThreads="4"/>
>    <Connector port="8080" protocol="HTTP/1.1"
>                connectionTimeout="20000"
>                redirectPort="8443"
>                executor="tomcatThreadPool" />
> 
> I have also disabled the access log Valve.
> Other than these configuration changes, my server.xml file is identical to
> the default one bundled in the official release of tomcat.
> 
> I'm creating load on the server using 750 threads (on the client side), but
> it seems that only 200 threads are handling requests in tomcat, judging by
> the performance I get on the client side. Also, using jmx, i see
> that Cataline.Executor.tomcatThreadPool.attributes.activeCount=200.
> 
> However, If I add maxThreads=6500 to the Connector element as well, I get
> the expected performance, and using jmx I can see that the activeCount is
> indeed 750 (as expected).
> 
> I have expected that specifying an executor in the Connector element should
> suffice and that I shouldn't specify a maxThread value as well.
> 
> I replicated this behavior in tomcat 7.0.14 as well. In tomcat 7.0.6,
> referencing the executor from the connector works as expected (i.e. no need
> to re-specify maxThreads).
> 
> Is there any rational behind these or is it simply a bug?

Read up on maxConnections

Mark



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org