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

