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]

Reply via email to