One of our sore points with HAProxy has been that when we do a reload there
is a ~100ms gap where neither the old or new HAproxy processes accept any
requests. See attached graphs. I assume that during this time any
connections received to the port are dropped. Is there anything we can do
so that the old process keeps accepting requests until the new process is
completely initialized and starts accepting connections on its own?
I've looked into fencing the restart with iptable commands to blackhole TCP
SYNs, and I've looked into the huptime utility though I'm not sure
overloading libc functions is the best approach long term. Any other
solutions?
[image: Inline image 1]
[image: Inline image 2]
is a ~100ms gap where neither the old or new HAproxy processes accept any
requests. See attached graphs. I assume that during this time any
connections received to the port are dropped. Is there anything we can do
so that the old process keeps accepting requests until the new process is
completely initialized and starts accepting connections on its own?
I've looked into fencing the restart with iptable commands to blackhole TCP
SYNs, and I've looked into the huptime utility though I'm not sure
overloading libc functions is the best approach long term. Any other
solutions?
[image: Inline image 1]
[image: Inline image 2]