Hi Alex,

The 'lingering close' Apache uses is briefly described here :
http://httpd.apache.org/docs/2.1/misc/perf-tuning.html#compiletime

Your issue seems to be rather with Apache, but could you tell us which version 
you are using and how it is configured (mpm) ?

Emmanuel

De : Alex Forrow [mailto:[email protected]] 
Envoyé : mardi 19 janvier 2010 23:12
À : [email protected]
Objet : Apache CLOSING state

Hi all,

I've been using HAProxy for about a year on a high traffic website and can say 
nothing but good things about it. Recently however I've run into an issue that 
I'm hoping someone may be able to help with.

After a recent increase in traffic, we have been unexpectedly maxing out the 
1000 connection limit (on HAProxy) to our Apache instances at our busiest point 
of the day. Looking at the Apache mod_status page at this time, it seems that 
many of the slots are in the 'CLOSING' state. We do normally have some slots in 
this state, but it seems to increase suddenly at about the same time each day, 
and decrease in the the same fashion a few hours later. I believe it is only 
the connection limit on HAProxy that prevents the situation becoming any worse 
(requests are queued/dropped). An example graph of of slot usage is available 
at http://sysadmin.favsys.net/pub/slots.png

The Apache 'CLOSING' state seems poorly documented, but after a quick look at 
the source, it seems to be a some internal linger code to avoid closing 
connections before the last data packet has been received by the browser 
(http://svn.apache.org/viewvc/httpd/httpd/trunk/server/connection.c?view=markup).

We have HAProxy running on two identical machines on the same subnet, and 
sometimes I am able to alleviate the problem by switching the virtual IP when 
this problem occurs. However on our most recent traffic spike, this hasn't been 
helping for any reasonable amount of time. After an initial spike, HAProxy 
calms down for a minute or so, then returns to the previous maxed-out state.

Here are some details about the setup:
. HAProxy 1.3.22
. Roundrobin balancing to 4 Apache nodes
. Using 'option httpclose'
. Keep-Alive disabled on all Apache servers (though I have tried enabling it on 
a single server for investigation purposes)
I have recently tried adding another Apache instance to the pool, and this 
doesn't seem to help.

Any help or guidance would be greatly appreciated. Let me know if there is any 
other information I can provide.


Regards,

Alex

Reply via email to