On Thu, 6 Dec 2001, Alexandre CASSEN wrote:
>
> Hi,
>
> >> What policy the user space can propose? Examples?
> >
> >In this case, it is a rather complex load balancing decision based on
> constant
> >feedback from the next tier fed through a neural network and then chosing
> the
> >best server.
> >
> >(You may shot me now; this wasn't my idea, I am just pondering how to
> >integrate this with LVS)
>
> Interresting,... I am currently working on an algorithm to change the
> realserver pool weigth according to realserver response time... What kind
> of algorithm are you using in your neural network ? A neural network can be
> used to manipulate realservers weight and that way increase the cluster
> response time.
>
I uses the following algorithm in the piranha code,
weight <- weight + A * pow(1-load, 1/3) when load!=1
where A is the scale of weight adjustment, load is server loadavg
weight is not changed, when load is 1.
It was addded probably two years ago, I don't remember exactly.
It might be better to replace the load variable with the aggregate_load,
weight <- weight + A * pow(1-aggregate_load, 1/3)
aggregate_load = R1*LOADAVG + R2*RESPONSE + R3*DISK + ...
where the sum of Ri is 1, and these variables (LOADAVG,RESPONSE..)
should be normalized into an interval (such as [0,8])
aggregate_load > 1 means that server is overloaded.
aggregate_load < 1 means that server is under loaded.
The parameter Ri can give users opportunity to adapt to their
applications, such as CPU-intensive, or IO-intensive applications.
Just a small suggestion.
Cheers,
Wensong
|