【问题标题】:maxconn limit per backend in haproxyhaproxy 中每个后端的 maxconn 限制
【发布时间】:2017-10-21 23:53:13
【问题描述】:

我们的 haproxy 负载均衡器为其后端打开了数千个连接 即使它的设置说每个服务器实例打开不超过 10 个连接(见下文)。当我取消注释“选项 http-server-close”时,后端连接的数量会下降,但是我希望拥有保持活动的后端连接。

为什么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 的输出,谢谢。也许你遇到了一个已知的错误haproxy.org/bugs

标签: networking connection load-balancing haproxy


【解决方案1】:

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

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

这更有意义,因为知道浏览器会启动预连接以提高页面性能。因此,在保持活动模式下,仅考虑未完成/活动的连接。

无论使用 tcp 模式的连接状态如何,您仍然可以强制执行 maxconn 限制,尤其是我没有看到在您当前的配置中使用模式 http 的特殊原因(除了具有访问者日志) .
或者你可以使用http-reuse和http模式来达到最低的并发连接数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多