httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Ho <and...@tellme.com>
Subject Re: Graceful shutdown in 2.0
Date Wed, 05 Feb 2003 18:56:07 GMT
Hello,

GL>If your proxy machines were being load balanced by an Alteon switch (or 
GL>whatever) you could probably tell the switch to stop sending new 
GL>connections to the proxy in question, while allowing the old connections 
GL>to finish. Of course this is based on whether the Alteon (or whatever) 
GL>config will let you do this of course.

For the Alteons on our production networks, we do exactly this. It works
pretty well.

GL>On the proxy side, maybe some generic function in Apache that is not 
GL>proxy specific could signal Apache to go into a "disabled" state, where 
GL>new connections get "connection refused", while old connections run 
GL>their course. The load balancer I assume would detect this state and 
GL>pass any new requests on to other machines. You could use ./apachectl 
GL>disable and ./apachectl enable to achieve this.

This is exactly the graceful shutdown case that was suggested, which I am
wholeheartedly supportive of. (Cutting off requests that are in service
is, in my opinion, never good; graceful shutdown seems like a really
useful feature to have.)

On a more load balancer specific note, Alteons (and some other load
balancers) use the concept of a health check URL. Our Alteons are
configured for example to check for a specific URL (for example, the
Alteon might do a "GET alteoncheck.txt HTTP/1.0" every 2 seconds).

I had a plan originally to write a handler that accepts requests for this
heartbeat check... on some signal (a particular request? an OS signal?) it
would start returning an error for the heartbeat check case, but keep
servicing all other requests as normal. Eventually, the Alteon would
decide that that machine was bad, and the number of connections would fall
to zero; it would then be safe to take the server out of rotation.

The benefit of this scenario is that you don't have to touch the load
balancer at all to get individual machines in and out of the load
balancer. Also, this type of scenario is far more automatable (rather than
telnetting into, say, a load balancer console interface and navigating
menus, ugh).

Humbly,

Andrew

----------------------------------------------------------------------
Andrew Ho               http://www.tellme.com/       andrew@tellme.com
Engineer                   info@tellme.com          Voice 650-930-9062
Tellme Networks, Inc.       1-800-555-TELL            Fax 650-930-9101
----------------------------------------------------------------------













Mime
View raw message