Hi I'm going to be a real pain, but it make no sense now... The email has been a team effort in our offices. We have included some diagrams to help illustrate our understanding or lack off.
Using a simple example: 1/ Assume I have one httpd server (prefork) that can spawn a maximum of 200 children (through httpd Maxclients directive). 2/ Assume I have 1 tomcat servers that can handle 200 threads each. If I connect the apache to tomcat with mod_jk (lb) I can, in theory handle 200 concurrent connections. Now, if I change the figures 1/ Assume I have one httpd server (prefork) that can spawn a maximum of 200 children (through httpd Maxclients directive). 2/ Assume I have 4 tomcat servers that can handle 200 threads each. In this case each apache child opens a connection to each tomcat server so I have reached the maximum amount of connections each tomcat can handle. What I cannot understand is that by increasing the tomcats to 4 I now have 800 possible connections but with the above config I can only access 200 of them. If I set apache to 800 (through httpd Maxclients directive) I will open more connection to each tomcat than they can handle. Is the above senario correct? and if it is then we are not getting more throughput by adding more tomcats and it would be better to access the tomcats directly. So using a ridiculous example, if you have 100 tomcat boxes connecting to one httpd server. The the limit for amount of spawned children would still only by 200. Even though you should be able to handle 100x200 concurrent connections. Even if you take into account that for each request per second received the request will take 4 seconds to process it still does not seem effective use of the tomcat resources. A few other resulting questions: If child1, child2, child3 etc each have a connection to each tomcat, does each child also do its own load balancing or do all the children share information to do loadbalancing? Regards > > I don't know exactly, if that parameter changed is some > versions, I simply checked one version of Tomcat. I would > give it a 85% chance, that 200 is the default also for your version. Sorry I should have bee more specific I did explicitely check this limit so in our case it is definitely 200. > > You can: learn about the jmxproxy functionality inside the > Tomcat manager webapp to look up the actual values used during runtime > > http://tomcat.apache.org/tomcat-5.5-doc/manager-howto.html > > use "qry=*:*" to get a dump of all MBeans, and then search > for 8009 and you will find the right value. > > You can also use netstat -an in a more fine grained way, by > not dropping the last column (connection state) to find out, > if all connections are actually established, or maybe in SYN_SENT etc. > > > I am in the process of upgrading our production enviroment > to mod_jk > > .25 and setting relevant time out values which will > hopefully improve > > things or at least rule out one less potential problem. > > > > Regards > > Yes timeouts and increased thread numbers inside Tomcat will > be good. To find out, why there are so many requests in > progress you (resp. your webapp developers) really need to > take a look at some Java thread dumps of your Tomcat processes. > > Regards, > > Rainer ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________
--------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]