On Sat, Jan 16, 2016 at 3:37 AM, Igor Cicimov
<[email protected]> wrote:
>
>
> On Sat, Jan 16, 2016 at 7:36 AM, Alex <[email protected]> wrote:
>>
>> Hello,
>>
>> I was testing haproxy version 1.6.3 and I am a bit confused regarding
>> draining a server.
>>
>> According to the documentation:
>> set server <backend>/<server> state [ ready | drain | maint ]
>> [...] Setting the mode to "drain" only removes the server from load
>> balancing but still allows it to be checked and to accept new persistent
>> connections.
>>
>> set weight <backend>/<server> <weight>[%]
>> [...] A typical usage of this command is to disable a server during an
>> update by setting its weight to zero, then to enable it again after the
>> update by setting it back to 100%.
>>
>>
>
> Well basically setting weight to 0 immediately disables the backend

I disagree on this point. Your server will still receive requests with
persistence.
It is simply ejected from the load-balancing algorithm.
Health checks are still performed.

> whereas draining stops any new connections going to the backend but the 
> existing
> sessions are allowed to continue until some time limit is reached, lets say
> 15 minutes, after which the backend gets completely disabled.

Drain perform the same as above.
I guess checks are also still performed.

> It is kinda
> removing the backend from the load balancer forcefully vs gracefully
> (allowing the existing sessions to finish). What method to use is really up
> to you and your user case.
>

I think you misunderstand "drain" and "disable". Disable forces
everybody to get routed to an other server for their next request.

Baptiste

Reply via email to