LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: questions about aggregate load

To: "lvs-users@xxxxxxxxxxxxxxxxxxxxxx" <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: questions about aggregate load
From: Wensong Zhang <wensong@xxxxxxxxxxxx>
Date: Wed, 17 Jul 2002 23:04:51 +0800 (CST)
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



<Prev in Thread] Current Thread [Next in Thread>