持久 http 连接(http-keep-alive)如何影响 Tq 值?

持久 http 连接(http-keep-alive)如何影响 Tq 值?

我理解其中,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 连接到您的服务器并以不同的间隔发出请求。

相关内容