从我理解其中,Tq 时间是 TCP 客户端握手结束和读取最后一个 HTTP 标头之间的时间。
haxproxy 1.4 手册将 Tq 时间描述为:
Tq:获取客户端请求的总时间(仅限 HTTP 模式)。这是从接受客户端连接到代理收到最后一个 HTTP 标头之间的时间。值“-1”表示从未见过标头末尾(空行)。当客户端过早关闭或超时时会发生这种情况。
来源:http://www.haproxy.org/download/1.4/doc/configuration.txt
我想了解如何记录持久连接的 Tq。如下图所示,我的理解是否正确?
Tq timer start
|
v
[CON] [REQ1: HTTP HEADERS|HTTP DATA] ... [RESP1] [REQ2: HTTP HEADERS|HTTP DATA] ...
^ ^ ^
| | |
+-- REQ1 Tq time ---+ |
| |
+-------------------- REQ 2 Tq time ---------------------------+
即当 haproxy 处理持久连接时,Tq 时间会随着同一连接上的每个请求而增加?
答案1
否,对于持久连接,Tq 是上一次响应完成和当前请求收到之间的时间。完成响应后计数器会重置。
如此大的 Tq 值可能只是表明客户端处于空闲状态并且没有发送任何请求。
您可以通过实验自己确认这一点 - 使用 nc 或 openssl 连接到您的服务器并以不同的间隔发出请求。