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]