HAProxy中每个后端的最大连接数限制

13
我们的Haproxy负载均衡器向其后端打开了数千个连接,即使其设置为每个服务器实例最多只打开10个连接(请参见下面)。当我取消注释“option http-server-close”时,后端连接的数量会下降,但是我希望保持后端连接的keep-alive状态。为什么http-keep-alive不尊重maxconn? 我使用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 -vv的输出粘贴到pastebin上,谢谢。也许您遇到了已知的错误http://www.haproxy.org/bugs/。 - Aleksandar
1个回答

4
在保持活跃模式下,空闲连接不被计算。正如在这个HAProxy mailthread中所解释的那样。

问题是,你不想让请求在服务器队列中等待,而服务器有大量空闲连接。

这更有意义,因为浏览器启动预连接以提高页面性能。因此,在保持活跃模式下,只考虑未完成/活动连接。
您仍然可以使用tcp模式强制执行maxconn限制,而不管连接状态如何,尤其是我不认为在您当前的配置中使用http模式有特别的原因(除了拥有更丰富的日志记录)。
或者,您可以使用http-reuse与http模式来实现最低数量的并发连接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接