HAProxy 的高 Tq 值

Wil*_*ill 6 haproxy

我刚刚接管了一个新环境的管理工作。一个已知问题是环境以高响应时间(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"
Run Code Online (Sandbox Code Playgroud)

如您所见,这个 Tq 大约为 10 秒。并非所有 Tq 都很高(1+ 秒),但其中很大一部分是(大约 35%)。通常,当我看到这种行为时,我预计会出现网络问题,但是遇到此类问题的访问者比例非常高,所以我想知道是否有人见过这种情况或有任何诊断提示如果问题可能出在这个盒子上?

Kyl*_*ndt 4

高 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
Run Code Online (Sandbox Code Playgroud)

产量:

Tq    
----- 
14990 
14987 
14986 
14983 
14974 
14972 
14972 
14965 
14964 
14964 
14962 
14961 
14960 
14955 
14952 
14951 
14945 
14943 
14935 
14932 
Run Code Online (Sandbox Code Playgroud)

这是因为http-server-close,在我们的环境中,连接对客户端保持打开状态(持久连接)长达timeout http-keep-alive 15s

我通常关注Tr第一个,因为它显示了负载均衡器和服务器之间的响应时间。