我刚刚接管了一个新环境的管理。一个已知问题是该环境以高响应时间(20 秒以上)而闻名,因此我认为我应该打开 haproxy 日志记录并查看发生了什么。我认为我会看到应用服务器中的加载时间很慢,但实际上我看到 HAProxy 中的 Tq 值很高。HAProxy 位于 EC2 上,并不位于 ELB 后面。
Sep 5 14:22:00 haproxy-apps01 haproxy[24695]: 76.14.153.221:3371 [05/Sep/2012:14:21:49.780] http-in default_apps/fe04-c 10936/0/0/55/10991 200 488 - - ---- 111/111/0/1/0 0/0 "GET /event_times/next?callback=jQuery170189312373075111_1346854917562&_=1346854918453 HTTP/1.1"
如您所见,这个的 Tq 约为 10 秒。并非所有的 Tq 都很高(1+ 秒),但其中很大一部分是这样的(约 35%)。通常,当我看到这种行为时,我会认为存在网络问题,但有如此高比例的访问者遇到这样的问题,所以我想知道是否有人见过这种情况或有任何提示可以诊断问题是否可能出在这个盒子上?
答案1
高 Tq 时间并不总是表明存在问题,是http-server-close
吗?
根据文档:
设置“option http-server-close”可能会显示更大的请求时间,因为“Tq”还测量等待其他请求所花费的时间。
例如,这是为 Stack Overflow 设置的,作为一些示例数据,查询如下:
Select Top 20 Tq from LogsLastTwoDays WITH (NoLOCK) WHERE
CreationDate > DATEADD(minute, -5, GETUTCDATE()) AND
ResponseCode = 200 AND Host = 'stackoverflow.com'
ORDER by Tq DESC
产量:
Tq
-----
14990
14987
14986
14983
14974
14972
14972
14965
14964
14964
14962
14961
14960
14955
14952
14951
14945
14943
14935
14932
这是因为,在我们的环境中http-server-close
,连接对客户端保持开放(持久连接),最长可达。timeout http-keep-alive 15s
我通常关注Tr
第一个,因为它显示了 LB 和服务器之间的响应时间。
答案2
将您的配置粘贴到某处可能会有帮助。
这可能与超时配置和 HTTP 模式有关。正如 Kyle 提到的,我首先会投票支持 http-server-close 选项。由于您尚未启用它,因此您可能会受到类似 slow-loris 的攻击。
您能否将“超时 http 请求”参数设置为 5 秒,然后查看是否仍然有这些行或者它们是否被 408 响应替换?
干杯