【问题标题】:When to use httpclose or http-server-close in haproxy何时在 haproxy 中使用 httpclose 或 http-server-close
【发布时间】:2016-04-22 18:21:45
【问题描述】:

我继承的系统由于网络延迟而存在一些性能问题。我们使用的是 CentOS 5.x 和 haproxy 1.5x

原因是由于“初始连接”所花费的时间,每个API请求都花费了大量时间

忽略其余时间,因为这只是从网络上获取的示例,从我的角度来看,其余时间都很好,除了“初始连接”,其中所有 API 调用的时间都在 150 - 250 毫秒左右,用于“初始连接” .

从 haproxy 中删除设置“选项 httpclose”后,性能显着提高,因为“初始连接”的所有等待时间都消失了。

翻了几篇文章,找到了这个http://killtheradio.net/technology/haproxys-keep-alive-functionality-and-how-it-can-speed-up-your-site/

建议删除的地方:

option httpclose 

替换为

timeout client  5000
option http-server-close

所以我的问题是:

  • 何时使用选项 httpclose?
  • 使用 haproxy 的服务器负责我们所有的 Restful API 调用,在删除配置“选项 httpclose”后我需要注意哪些其他事项?
  • 我应该使用“选项 http-server-close”吗?有什么影响?

【问题讨论】:

    标签: https haproxy keep-alive


    【解决方案1】:

    你实际上应该使用

    option http-keep-alive
    

    您需要确保前端限制足够高(注意内存要求)以适应活动会话数量的增加,由于连接将不再关闭,因此活动会话数量会更高每个请求。

    接下来的事情是确保你的后端支持对 HAproxy 保持活动,否则上面是无用的,你可以切换回 http-server-close 模式。

    根据您的请求速率和并行客户端的数量,您需要调整timeout http-keep-alive 以确保您在前端有足够的连接插槽,同时仍保持良好的连接重用百分比。几秒钟的开始是一个很好的价值。

    httpclose 选项应该只在你想关闭与服务器和客户端的连接时使用,除非客户端被破坏,否则几乎不会出现这种情况。如果您的服务器无法很好地处理大量空闲请求,您可能希望使用 http-server-close 选项,但所有现代 Web 服务器都可以很好地处理它。

    这也将有助于 SSL 部分,因为它代表了连接阶段的重要部分(假设它不需要对每个请求进行 SSL 握手),但您可能需要查看 SSL 会话缓存性能和如果您有多个处于活动状态的 HAproxy 服务器,则支持 RFC5077(需要 v1.6+)。

    https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#tune.ssl.cachesize https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.ssl.lifetime

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多