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 > >