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