我正在尝试排查生产环境中的零星性能问题。 我们有一个http前端指向8台服务器的后端。 在HAProxy http日志中,有数百个成功的请求(〜0.1%的请求),具有不寻常的时间。 这些请求时序徘徊在1000ms,3000ms,7000ms,15000ms和31000ms左右。 时间主要来自Tc列,这是build立到后端连接所需的时间(也有一些请求在Tw时间中需要63000ms,并有1次重试)。 纠正我,如果我错了,但我相信这些时间是在TCP重传指数退避使用的模式:2 ^ n – 1还有什么可以解释这些延迟?
我们有一个相当高的超时连接configuration10分钟 ,我想改为5秒 。 我关心的是那些具有很长Tc时间的奇怪请求会发生什么。 请求将返回一个错误,或将HAProxy使用不同的连接,也许到不同的服务器(我们有redispatch打开)? 我们只能在我们的生产环境中看到这个问题,到目前为止,我们在我们的testing环境中创build一个能够复制问题的负载testing失败。 生产环境使用http健康检查进行configuration,每隔3秒重试3次。 实际上,我们每天有几十次失败的健康状况检查,但是它们每次在第一次重试时都会恢复,2秒后,服务器永远不会被标记。
更新5/24/2017:我们减less超时连接到5秒,这有很大的帮助。 但是,有些请求会遇到超时,并最终因重试而成功(1次重试时为〜5000ms,2次重试时为〜10000ms)。 仍然困惑为什么这是发生在局域网上。 有趣的是,我们有多个前端:一些在Linux上运行,而另一些在Windows(IIS)上运行。 与IIS服务器的前端是唯一遇到此问题的。 有没有人遇到与HAProxy与IIS通信的问题?