Hello,
On Wed, 17 Jul 2002, arkar wrote:
> I've read some documents about the load balancing algorithm.
> And I am very interested in Wengong's description about the
> algorithm in the piranha code:
> >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
> >
> > eight 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.
> the quoted text above is from
> http://marc.theaimsgroup.com/?l=linux-virtual-server&m=100766070922962&w=2
>
> I think the aggregate load is a great idea. But I can hardly find any articles
> in detail.So I'd like to ask some questions here:
>
> 1. what't the meaning of "aggregate_load > 1 means that server is overloaded"
> viz. is it relatively overloaded to other realserver or really overloaded?
>
Please pay attention to the formular:
weight <- weight + A * pow(1-aggregate_load, 1/3)
This is a negative feedback formula, it helps interate to a stable point.
For example, when aggregate_load > 1, weight will be adjusted a smaller
value; when aggregate_load < 1, weight will be bigger.
> 2. what exactly the variables (LOADAVG,RESPONSE..) are
> Take the CPU load for example, is length of the task queue a good choice£¿
>
LOADAVG is system load average, you can use "uptime" to show it. RESPONSE
can be a relative response time of accessing your service.
> 3. how the variable load is normalized in the piranha code
>
It uses LOADAVG now.
Regards,
Wensong
|