How about create a new doc titled "Tunning/Troubleshooting" and add to Tomcat doc?
Punky ----- Original Message ----- From: "GOMEZ Henri" <[EMAIL PROTECTED]> To: "Tomcat Developers List" <[EMAIL PROTECTED]> Sent: Thursday, March 21, 2002 4:14 AM Subject: RE: DO NOT REPLY [Bug 5181] - HttpConnector [8080] No processor available, rejecting this connection excellent technical analyze. should be present in tomcat faq .... - Henri Gomez ___[_]____ EMAIL : [EMAIL PROTECTED] (. .) PGP KEY : 697ECEDD ...oOOo..(_)..oOOo... PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: Wednesday, March 20, 2002 4:26 AM >To: [EMAIL PROTECTED] >Subject: DO NOT REPLY [Bug 5181] - HttpConnector [8080] No processor >available, rejecting this connection > > >DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG >RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT ><http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5181>. >ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND >INSERTED IN THE BUG DATABASE. > >http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5181 > >HttpConnector [8080] No processor available, rejecting this connection > > > > > >------- Additional Comments From [EMAIL PROTECTED] 2002-03-20 >03:26 ------- >I have not run into this problem using the Tomcat HTTP >connector, but I have >seen similar problems when using mod_jk to connect to Tomcat >via AJP on a >server with heavy load. > >In my case, after alot of detective work, I determined that >Tomcat itself >was not the problem. > >There are alot of things which can affect the ability of >Tomcat to handle >a request regardless of whether they come from its own HTTP >connector or >from Apache via AJP. > >You may have already looked at one or more of the following >issues, I will >include everything just for completeness. > >The first thing I found is that JVM garbage collection can >have a significant >intermittent effect on Tomcat. When GC occurs processing by >Tomcat freezes, >yet the OS will continue to accept requests on the port. When >GC has completed, >Tomcat will try to handle all pending requests. If the GC >took a significant >amount of time, this can cause a cascading affect where Tomcat >runs out of >processors to handle requests. I made the mistake of setting >the JVM -Xmx >too large. The JVM ended up using more memory than the OS >would keep in >physical memory, when a Full GC occurred, performing GC on >objects swapped >out to disk caused GC to take a significant amount of time. >In my case, >70 seconds. Decreasing the -Xmx to make sure the JVM stack was always >resident in physical memory fixed the problem. > >JVM Memory Usage and Garbage Collection >--------------------------------------- > >It is very important to tune the JVM startup options for GC >and JVM memory >usage for a production server. > >1. Make sure you are running Tomcat with a JVM that supports >Hotspot -server, > I use 1.3.1_02. > >2. Use incremental GC, the -xincgc java startup option. > >3. Try running Tomcat with the -verbose:gc java arg so you can collect > data on GC. > >4. Make sure the OS is keeping all JVM stack in physical memory and not > swapping it out to disk. Reduce -Xmx if this is a problem. > >5. Try setting -Xms and -Xmx to the same size. > >6. Search the fine web for articles on JVM GC and JVM >performance tuning. > >After researching and testing all of the above I significantly >reduced the >maximum time for GC's. 99% of my GC's now run in < .05 sec, >of the remaining, >most run at < 1 sec, no more than 5-10 times a day do I see a >GC > 1 sec, >and they never exceed 5 sec. > >dB access by applications >------------------------- > >If your applications uses a db, make sure you set it's >connection timeout >to a value > the max GC time you see. Otherwise you will start seeing >db connection failures. I set my db connection timeouts to 10 seconds. > >A problem with your database, or if you frequently reach the maxiumum >connections you allow in a db connection pool can cause the type of >problems you see. If the db connections fail, or your connection pool >is exhaused, each servlet which is waiting for a connection (remember >I recommended 10 seconds) will eat up an HTTP or AJP processor >for 10 seconds. >This can cause a cascading effect where you see alot of processors used >by Tomcat. > >Check your web applications for thread locking problems, or >long delays. >----------------------------------------------------------------------- > >Tomcat can't do anything useful by itself, its the applications you >install that provide the content. There could very well be >thread locking >problems or other bugs which cause delays in a servlet >handling a request. >This can cause Tomcat to appear to fail due to runaway use of >Processors. > >Increase maxProcessors >---------------------- > >Increase your maxProcessors to handle intermittent cascading >of requests >due to GC, etc. I set my maxProcessors to 2X max concurrent requests >I see under heavy load. > >Proposition for a change to Processors to help debug these problems >-------------------------------------------------------------------- > >Adding code to Processors so that they dump a stack trace for each >existing thread when the pool of processors is exhausted could provide >valuable information for tracking down the source of problems in >a web application or tomcat. With a stack trace dump for each thread >you may be able to tell where the problem is. > >I will be committing some code for the mod_jk AJP processor which >does this. > >And my comments here could be used as the start of a performance tuning >document for Tomcat. AKA, Before you report a bug in Tomcat. :-) > >-- >To unsubscribe, e-mail: ><mailto:[EMAIL PROTECTED]> >For >additional commands, e-mail: ><mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>