I’ve noticed the weird HAProxy 2.0 (2.0.12) behavour when it is started with all backend servers disabled (MAINT state). Weirdness is that when the servers are configured with check directive HAProxy starts to consume additional CPU cycles (when compared to the same configuration with no-check directive). It becomes more visible when HAProxy is started with high number of threads.
For example, on a 2CPU VM and 100 backend servers in a MAINT state HAProxy started with 62 threads consumes around 20% of CPU (that’s with no load). With the same config but no-check in it CPU usage is around 1%.
Can this be fixed?
global nbthread 62 log stdout local0 warning stats socket /var/run/haproxy.sock mode 666 level admin stats timeout 2m defaults log global mode http option http-use-htx timeout connect 5s timeout client 1h timeout server 1h listen grpc bind 127.0.0.1:50051 proto h2 option httplog balance roundrobin default-server proto h2 check inter 1s fall 1 rise 1 disabled #default-server proto h2 no-check inter 1s fall 1 rise 1 disabled server-template srv 1-100 10.0.0.1:50051