httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ask Bjørn Hansen <...@develooper.com>
Subject Re: The Case for a Universal Web Server Load Value
Date Wed, 14 Nov 2012 22:19:37 GMT

On Nov 14, 2012, at 11:01, Tim Bannister <isoma@jellybaby.net> wrote:

>> I really like how Perlbal does it:
>> 
>> It opens a connection when it thinks it needs more and issues a (by default, it's
configurable) "OPTIONS *" request and only after getting a successful response to the test
will it send real requests on that connection (and then it will keep the connection open with
Keep-Alive for further requests).
> 
> X-Server-Load: would still be an improvement, eg with this response to OPTIONS:
> HTTP/1.1 200 OK
> Date: Wed, 14 Nov 2012 19:00:00 GMT
> Server: Apache/2.5.x
> X-Server-Load: 0.999
> 
> …the balancer might decide to use a backend that is reporting a lower load.

I know I am fighting the tide here, but it's really the wrong smarts to put in the load balancer.

The backend should/can know if it can take more requests.  When it can't it shouldn't and
the load balancer shouldn't pass that back to the end-user but rather just find another available
server or hold on to the request until one becomes available (or some timeout value is met
if things are that bad).

With the "Perlbal-model" the backend can control how much work it will take on and the load
balancer will never send traffic to an overloaded or hung server, so the users will always
get to the first truly available backend.

The load balancer smarts should be in managing these "let's see if you are ready" requests
and "pending" connections.


Ask

-- 
Ask Bjørn Hansen, http://askask.com/




Mime
View raw message