Re: [lvs-users] Quiescing busy realservers

To: " users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] Quiescing busy realservers
From: Thomas Pedoussaut <thomas@xxxxxxxxxxxxxx>
Date: Wed, 25 Jun 2008 15:42:02 +0100
Guy Waugh wrote:
> Hi list,
> I have an LVS-DR service managed by ldirectord with 6 Windows 
> realservers running IIS. I have been using "checktype=negotiate" setup 
> whereby the "request" is a script that logs in to the application on the 
> realserver.
> Of course, when a realserver is down, the "request" doesn't get a valid 
> "receive" string, so ldirectord rightly takes the relevant realserver 
> out of the IPVS table.
> The application running on the realservers is very resource-intensive, 
> and has a built-in "Server too busy -- come back later" mechanism that 
> kicks in when a realserver determines that is it too overloaded to allow 
> any new connections. However, the application can continue to service 
> existing connections.
> The application owners have asked if there is anything we can do to 
> quiesce realservers that are in the "Too busy" state (i.e. continue to 
> service existing connections but redirect new connections to other 
> realservers).
> I see that there is 'feedbackd', which looks pretty much what I want, 
> but it looks pretty linux-centric.
> What are other people doing about this sort of thing?
I usually use weight. Under keepalived, you can affect a weight on the 
fly by passing the return code of your health-check. I guess ldirectored 
can do something similar. If you put a RS with a weight of 0, it will 
still serve the existing connections and the sticky ones, but won't be 
receiving new connections. that might be the solution for you.

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