haproxy 中每个后端的 maxconn 限制
maxconn limit per backend in haproxy
我们的 haproxy 负载均衡器打开了数千个与其后端的连接
即使它的设置说每个服务器实例打开不超过 10 个连接(见下文)。当我取消注释 "option http-server-close" 时,后端连接数量下降,但我希望后端连接保持活动状态。
为什么 maxconn 不受 http-keep-alive
的尊重?我用 ss
验证打开的后端连接处于 ESTABLISHED
状态。
defaults
log global
mode http
option http-keep-alive
timeout http-keep-alive 60000
timeout connect 6000
timeout client 60000
timeout server 20000
frontend http_proxy
bind *:80
default_backend backends
backend backends
option prefer-last-server
# option http-server-close
timeout http-keep-alive 1000
server s1 10.0.0.21:8080 maxconn 10
server s2 10.0.0.7:8080 maxconn 10
server s3 10.0.0.22:8080 maxconn 10
server s4 10.0.0.16:8080 maxconn 10
在保持活动模式下 空闲连接 不计算在内。如本 HAProxy mailthread
中所述
The thing is, you don't want
to leave requests waiting in a server's queue while the server has a ton
of idle connections.
这更有意义,因为浏览器会启动预连接以提高页面性能。因此,在保持活动模式下,仅考虑 outstanding/active 个连接。
无论使用 tcp 模式 的连接状态如何,您仍然可以强制执行 maxconn 限制,特别是我没有看到在您当前配置中使用模式 http 的特殊原因(除了来自到达者日志)。
或者您可以使用 http-reuse 和 http 模式来实现最低的并发连接数。
我们的 haproxy 负载均衡器打开了数千个与其后端的连接 即使它的设置说每个服务器实例打开不超过 10 个连接(见下文)。当我取消注释 "option http-server-close" 时,后端连接数量下降,但我希望后端连接保持活动状态。
为什么 maxconn 不受 http-keep-alive
的尊重?我用 ss
验证打开的后端连接处于 ESTABLISHED
状态。
defaults
log global
mode http
option http-keep-alive
timeout http-keep-alive 60000
timeout connect 6000
timeout client 60000
timeout server 20000
frontend http_proxy
bind *:80
default_backend backends
backend backends
option prefer-last-server
# option http-server-close
timeout http-keep-alive 1000
server s1 10.0.0.21:8080 maxconn 10
server s2 10.0.0.7:8080 maxconn 10
server s3 10.0.0.22:8080 maxconn 10
server s4 10.0.0.16:8080 maxconn 10
在保持活动模式下 空闲连接 不计算在内。如本 HAProxy mailthread
中所述The thing is, you don't want to leave requests waiting in a server's queue while the server has a ton of idle connections.
这更有意义,因为浏览器会启动预连接以提高页面性能。因此,在保持活动模式下,仅考虑 outstanding/active 个连接。
无论使用 tcp 模式 的连接状态如何,您仍然可以强制执行 maxconn 限制,特别是我没有看到在您当前配置中使用模式 http 的特殊原因(除了来自到达者日志)。
或者您可以使用 http-reuse 和 http 模式来实现最低的并发连接数。