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.
|