![HAProxy 性能问题](https://linux22.com/image/704519/HAProxy%20%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98.png)
我正在尝试解决生产环境中偶尔出现的性能问题。我们有一个 http 前端,它指向一个有 8 台服务器的后端。在 HAProxy http 日志中,有数百个成功请求(约占请求的 0.1%)的时间不正常。这些请求的时间大约在 1000 毫秒、3000 毫秒、7000 毫秒、15000 毫秒和 31000 毫秒左右。时间主要来自铊列,这是与后端建立连接所需的时间(还有一些请求需要 63000ms台灣计时并进行 1 次重试)。如果我错了,请纠正我,但我相信这些计时是 TCP 重传指数退避中使用的模式:2^n - 1。还有其他可以解释这些延迟的原因吗?
我们有相当高的超时连接配置10分钟,我想将其更改为5秒。我担心的是那些 Tc 时间较长的奇怪请求会发生什么。请求会返回错误吗?或者 HAProxy 会使用不同的连接,也许是连接到不同的服务器(我们已打开重新调度)?我们只能在生产环境中看到此问题,到目前为止,我们无法在测试环境中创建可复制此问题的负载测试。生产环境配置了 http 健康检查,重试间隔为 2 秒,每次重试 3 次。我们实际上每天有几十次失败的健康检查,但它们每次都会在 2 秒后的第一次重试中恢复,并且服务器从未被标记为宕机。
更新日期:2017/5/24:我们减少了超时连接到5秒,这很有帮助。但是,有些请求超时,最终由于重试而成功(重试 1 次时约 5000 毫秒,重试 2 次时约 10000 毫秒,等等)。仍然不明白为什么这种情况会发生在 LAN 上。一个有趣的注意事项是我们有多个前端:一些在 Linux 上运行,而另一些在 Windows(IIS)上运行。只有 IIS 服务器的前端遇到此问题。有人遇到过 HAProxy 与 IIS 通信的问题吗?