Rainer, that's very true.
So I am wondering...If 1200 > 200 (Tomcat maxThreads), then what would be
the right way to solve this? Imagine that 2 Tomcats would crash, that would
leave me with 1200 > 400. I can't just raise the maxThreads to 600 for each
Tomcat, as that would probably perform even worse (I'm thinking about
excessive context switching, etc).

The best solution would be to enable DisableReuse as Mark stated, although
I'm afraid that would be too big of a performance hit.
The other option would be to configure the connection_pool_size, according
to Mladen's link. Although, this last one isn't very clear to me either. I
state from the URL Mladen passed:

*"There are 4 JBoss servers each containing 1 JBoss instance(s) giving a
total of 4 mod_jk workers*

*Given the ThreadsPerChild of 60 and the MaxClients (600) / ThreadsPerChild
(60) = Processes (10) and with 2 Apache instance(s) then the
connection_pool_size has been best determined to be 15*

*The total Jboss threads 1600 are > the total Apache threads 1200. The
mod_jk connection_pool_size was determined to be 15 via the math 600 Apache
MaxClients / 4 total Jboss instances 150 threads per JBoss which will be
equal to or less than the maxThreads 400 150 / 10 Apache server processes to
get the connection_pool_size of 15. in Jboss. Take this number"*

I'm wondering, setting connection_pool_size 15, wouldn't this mean that the
maximum number of connections being handled by tomcat at one time is limited
to 15?? Or would there be a pool per Apache server process? Which would mean
150 connections (10 server processes) per Tomcat. If so, then this would
total 600 connections (4 Tomcats).

1200 > 600. Same problem, right?

2010/10/28 Rainer Jung <rainer.j...@kippdata.de>

> On 26.10.2010 20:36, Marc Wilmots wrote:
>
>> 2010/10/26 Mladen Turk<mt...@apache.org>
>>
>>  On 10/26/2010 02:47 PM, Marc Wilmots wrote:
>>>
>>>  Hi Experts,
>>>>
>>>> I have the following setup:
>>>>
>>>>                 Apache1
>>>>                 /         \
>>>>   Apache2           Apache3
>>>>                \          /
>>>>                Tomcat1
>>>>
>>>> All Apaches are version 2.2.3 (RedHat)
>>>> Apache2 and Apache3 loadbalance Tomcat1 (6.0.18) with mod_jk (2.2.28).
>>>>
>>>> In idle state the AJP connector of Tomcat1 only has 7 active
>>>> connections.
>>>> After launching a stress test of Tomcat1, it's AJP connector has reached
>>>> maxThreads (200). After the stress test has finished, there are still
>>>> 200
>>>> active connections in the AJP connector.
>>>>
>>>> Because of this, apache2 and apache2 cannot receive any heartbeat
>>>> message
>>>> anymore from the AJP connector and mark Tomcat1 as dead. I can access
>>>> perfectly through port 8080, so Tomcat1 isn't dead at all!
>>>>
>>>>
>>>>  You have a usual setup problem where the number of connections
>>> in httpd fronting tomcat is too high for a tomcat.
>>> And you don't have any mechanism for limiting those connections.
>>>
>>> Sorry, I realize I had to mention I have a total of 4 Tomcats, which in
>>>
>> total make up a maxThreads of 800 (200 each).
>> The Apaches have a maxClients of each 600 (1200 total).
>>
>> 1200>  1000, thus your theory is probably right. However, I'm just
>> wondering... I read that when Tomcat reaches the max number of
>> connections,
>> just rejects new connections (I'm omitting the backlog on purpose).
>>
>
> Yes.
>
> But your calculation above is not right. Each Apache will connect to each
> Tomcat. So from the point of view of one Tomcat, it has 200 threads, but
> 1200 posible incoming connections from the Apache Servers. So it is not 1200
> > 800 but 1200 > 200!
>
> Regards,
>
> Rainer
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to