Hello,
Before anyone goes too far into creating things here, I should
probably point out that I have already written a system that handles
this feature based upon CPU, Memory and Network usage, it was my
University Dissertation! Since that has only just been marked, I
haven't previously been able to discuss or release any information of
this to the community.
In simple terms, I have created a fairly simple daemon that monitors
the CPU, Memory and Network usage of servers using the SNMP protocol.
The statistics gathered are stored in a MySQL database, which allows
the graphical web user interface to graph these statistics.
Whilst I can go into further details at a later date, I'd like to
request some assistance from someone in the community who has more
experience with patching the HAProxy code. As I'd like to see a patch
created that integrates the protocol for performing the dynamic weight
update, currently the code I have only works under 1.3.14.11, due to
the changes made to the Unix socket in later versions, this needs to
be tweaked before it can be re-used by the community.
Given time, its possible that the entire package (daemon and UI) can
be released as an add-on to HAProxy.
Cheers,
Robert.
On 16 Oct 2009, at 21:30, Mariusz Gronczewski wrote:
2009/10/16 Craig <[email protected]>:
Hi,
a patch (set weight/get weight) I imagined some days ago was
integrated
just 6hrs after I had thought about it (Willy must be reading them!).
I've written a simple (exchangable) interface that prints out a
servers
load and a client to read it. I plan to read the load from all
servers
and adjust the weight dynamically according to the load so that a
very
busy server gets less queries and the whole farm is more balanced. I
plan to "smoothen" the increasing/decreasing a bit so that there
aren't
too great jumps with the weight, I want to implement a policy of
something like "oh that server can do 50% more, lets just increase
the
weight by 25% and check again in a minute". I hope this will
autobalance
servers with different hardware quite well, so that you don't have to
guess or do performance tests to get the weights properly.
Some python code is already finished (partly because I'd like to
practise a bit) but I didn't continue yet, because I'd like to hear
your
opionions about this.
Hi
I'm sure lot of ppl (including me) will be interested in that ( I
would probably have to write something similar in a month or so). By
"load" you mean /proc/loadavg ? If yes then u might want to include
some kind of per-server tuning of multiplier because obviously on 16
core server loadavg of 10 would be "moderately loaded" while on 4 core
server i'd be "overload"
Regards
Mariusz