LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [Patch] Overload flag is not resetting

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: [Patch] Overload flag is not resetting
Cc: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Cc: Horms <horms@xxxxxxxxxxxx>
From: Wensong Zhang <wensong@xxxxxxxxxxxx>
Date: Mon, 7 Feb 2005 01:24:23 +0800 (CST)


Hi,

On Sat, 5 Feb 2005, Julian Anastasov wrote:


On Sat, 5 Feb 2005, Wensong Zhang wrote:

After mark->cw is reset with zero, the server with mark->nw will be picked
up for next new request, instead of the server with weight >= (mark->mw -
mark->di).

        I see other dangerous problems. WRR (not checked other
schedulers) is not ready at all for dynamic changes of the
IP_VS_DEST_F_OVERLOAD flag, even for changes during edit where
mw does not take into account the overloaded flag (may be because
it can be dynamically changed).

        If a server becomes overloaded mw easily goes out of sync
with dramatic results: no dest found. What should we do?
Every time when we don't find dest and cw > 0 because
cw > mw_not_overloaed we should set cw to mw_not_overloaed and
repeat the search from cl at level cw?


Good finding again. Maybe we can add additional condition (mark->cw == mark->di) into the check of back to the beginning, such as

                if (mark->cl == p && mark->cw == mark->di) {
                        /* back to the start, and no dest is found.
                           It is only possible when all dests are OVERLOADED */
                        dest = NULL;
                        goto out;
                }

Then WRR will only return NULL server when all the servers are overloadded.

BTW, WRR in kernel 2.4 should be OK, sorry that I made a mistake last time.

Thanks,

Wensong

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