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 ?

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