Just read this thread, and I thought I would give my humble opinion on this:

As a hosting provider we use both windows and unix backends, en we use haproxy 
to balance requests across sites on a per-site backend (with squid in front of 
haproxy). What I would love to see, is dynamic balancing based on the 
round-trip time of the health check.

So when a backend is slower to respond, the weight should go down (slowly), so 
the faster servers would get more requests. Now that's a feature I'd love to 
see.. And then there would not be anything to configure on the backend (we 
don't always have control over the backend application)

Just my 2 cents.
-- 

 
With kind regards,
 
 
Angelo Höngens
 
Systems Administrator
 
------------------------------------------
NetMatch
tourism internet software solutions
 
Ringbaan Oost 2b
5013 CA Tilburg
T: +31 (0)13 5811088
F: +31 (0)13 5821239
 
mailto:[email protected]
http://www.netmatch.nl
------------------------------------------

-----Original Message-----
From: Willy Tarreau [mailto:[email protected]] 
Sent: vrijdag 16 oktober 2009 22:59
To: Hank A. Paulson
Cc: Craig; [email protected]
Subject: Re: dynamic weights based on actual server load

On Fri, Oct 16, 2009 at 01:36:52PM -0700, Hank A. Paulson wrote:
> For the code you are developing, if you make the interface general enough 
> so that parameters can be added or removed that would be good. 
> Telnet/text/memcached style protocols seem popular to allow easy 
> debugging/monitoring.
> So if your protocol says a machine has to send a load info bundle like:
> SS:8cbed340118ddf87e2d8ca4352006572
> SYSID: blah1
> SAMPLETIME: 2009-10-14-22-00-03
> CPU: 83.23343455
> NETI: 134238.0232
> NETO: 492283.6549
> DISK: 433.232
> ES:8cbed340118ddf87e2d8ca4352006572

It's a lot better to return these information in HTTP headers, because
that can be added on top of any other resource that haproxy would check.

(...)
> It is probably possible to just modify feedbackd to emit haproxy "set 
> weight" commands.

Don't do that ! The "set weight" is for the human, not for an automaton.
The most interesting usage is "set weight xx/xx 0" to disable a server
before operating on it, or "set weight xx/xx 50%" to off-load it a bit
if you see it start swapping. If you send an automated tool on it, it
will constantly change your manually assigned values.

> More interesting, I think would be to combine a multiple load parameter 
> (active connections, CPU, net in/out bytes, net in/out packets, disk io, 
> etc) feedback system with the ideas from the NetBSD neural network 
> scheduler, creating an ai based dynamic load balancing system.
> http://softlayer.dl.sourceforge.net/project/nnsched/docs/thesis/nnsched.pdf
> This is more possible now that we have multi core systems that would have 
> some idle CPU resources available for the ai compute load.

if doing some computations on that few parameters consumes even
a measurable amount of CPU, then they are clearly wrong. We're
not doing fractals here. Combining 3-4 parameters should not
results on billions of operations.

Willy



Reply via email to