Hi Rainer, I've set the ttl to 120 re-run the last test with 30 concurrent connections
1 LISTEN 25 CLOSE_WAIT 26 FIN_WAIT2 104 ESTABLISHED 924 TIME_WAIT Not made too much difference. But as the test is only taking 20 secs max none of the connections should have reached the ttl unless ttl is not seconds. Do you think I should be asking this on the httpd dev mailing list as its an apache prob and not tomcat ? Thanks David On Mon, 2007-11-19 at 15:47 +0100, Rainer Jung wrote: > David Cassidy wrote: > > Hi ! > > > > This is using worker rather than prefork - apache 2.2.6 as comes with > > fedora 7. I've changed /usr/sbin/httpd to be /usr/sbin/httpd.worker. > > > > If I make a 1000 requests with ab with keep alive to apache - eg > > ab -k -n 1000 <url> > > then I get alot of connections from apache to tomcat that are in > > TIME_WAIT - eg > > > > tcp 0 0 127.0.0.1:46284 127.0.0.1:8009 > > TIME_WAIT > > tcp 0 0 127.0.0.1:46374 127.0.0.1:8009 > > TIME_WAIT > > tcp 0 0 127.0.0.1:46306 127.0.0.1:8009 > > TIME_WAIT > > tcp 0 0 127.0.0.1:46396 127.0.0.1:8009 > > TIME_WAIT > > > > the counts look like > > 1 LISTEN > > 2 ESTABLISHED > > 999 TIME_WAIT > > > > ie 999 connections in TIME_WAIT > > Is there anyway to tell Apache to keep the connections alive for a more > > connections ? > > First of all, for me this looks like really Apache httpd is closing the > connections (you ask later, if Tomcat can be told to keep the connection > open, but this doesn't help, because httpd closes it). > > Does setting a ttl help (see > http://httpd.apache.org/docs/2.2/mod/mod_proxy.html)? > > Regards, > > Rainer > > > > > Apache config is : > > > > ProxyPass / balancer://myclusterclear/ stickysession=JSESSIONID| > > jsessionid > > <Proxy balancer://myclusterclear> > > BalancerMember ajp://localhost:8009 route=server1 min=0 > > smax=1000 max=1000 keepalive=On > > </Proxy> > > > > > > Tomcat is > > > > <Connector executor="tomcatThreadPool" port="8009" secure="false" > > protocol="AJP/1.3" enableLookups="false" proxyPort="80" > > redirectPort="443" maxKeepAliveRequests="2000" tcpNoDelay="true" > > keepAliveTimeout="10000" connectionTimeout="600000"/> > > > > > > If I increase the concurrency to 10 from 1 and re-run the same 1,000 > > tests I get > > > > 1 LISTEN > > 20 ESTABLISHED > > 990 TIME_WAIT > > > > Slightly better but i'd have liked to see there be more ESTABLISHED > > connections. > > > > Running with 30 concurrency i get > > > > 1 LISTEN > > 60 ESTABLISHED > > 970 TIME_WAIT > > > > With 50 concurrency I get > > > > 1 LISTEN > > 28 CLOSE_WAIT > > 28 FIN_WAIT2 > > 66 ESTABLISHED > > 939 TIME_WAIT > > > > In each case the netstat is performed immediately after the test has > > finished and before each test run the netstat only has the 1 listen > > socket for 8009. In each case the netstat is from apache to tomcat > > > > So any ideas why tomcat would close the connections ? > > > > Many thanks > > > > David > > > > > > On Mon, 2007-11-19 at 15:07 +0100, Rainer Jung wrote: > >> Hi David, > >> > >> TIME_WAIT is a normal TCP state after a connection was successfully > >> closed. Only one side of the connection goes into TIME_WAIT, namely the > >> side that sent the first FIN. > >> > >> So since you've got httpd and Tomcat on the same server, you first need > >> to find out, which side of the conection is in TIME_WAIT. In netstat, > >> usually the left hand IP:PORT is the local side, and the right IP:PORT > >> the remote side. In case the left pair of the TIME_WAIT line includes > >> the port 8009, this would mean, that Tomcat closed the connection first, > >> in case 8009 is on the right side, it would mean, that Apache httpd > >> closed the connection first. Maybe you could show us some of the > >> TIME_WAIT netstat lines. > >> > >> Both could be OK, so we could ask ourselves, if we expect such > >> behaviour. In general AJP connections should be used persistently and > >> only closed, if they have been idle for to long. > >> > >> Is the number of TIME_WAIT connections much larger, than the concurrency > >> ("-c") used with ab? > >> > >> Regards, > >> > >> Rainer > >> > >> David Cassidy wrote: > >>> Guys, > >>> > >>> I'm using mod_proxy in apache 2.2.6 with the ajp connector in tomcat. > >>> > >>> apache config > >>> ----------------- > >>> <Proxy balancer://myclusterclear> > >>> BalancerMember ajp://localhost:8009 route=server1 min=0 > >>> smax=1000 max=1000 keepalive=On > >>> </Proxy> > >>> ProxyPass // balancer://myclusterclear/ > >>> stickysession=JSESSIONID|jsessionid > >>> > >>> > >>> Tomcat config (Using the native apr libs) > >>> > >>> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" > >>> maxThreads="150" minSpareThreads="4"/> > >>> > >>> <Connector executor="tomcatThreadPool" port="8009" secure="false" > >>> protocol="AJP/1.3" enableLookups="false" proxyPort="80" > >>> redirectPort="443" maxKeepAliveRequests="2000" tcpNoDelay="true" > >>> keepAliveTimeout="10000" connectionTimeout="600000"/> > >>> > >>> After running a few hits with ab to give it some load > >>> there are a very large number of connections between apache and tomcat > >>> in a TIME_WAIT status. > >>> > >>> Is this a common happening ? Is there something that can be configured > >>> to prevent this from appearing ? > >>> > >>> Thanks > >>> > >>> David > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]