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

Chr*_*now 3 haproxy

我了解,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 ---------------------------+
Run Code Online (Sandbox Code Playgroud)

即当 haproxy 处理持久连接时,Tq 时间会随着同一连接上的每个请求而增加吗?

小智 5

不,对于持久连接,Tq 将是完成前一个响应和收到当前请求之间的时间。完成响应后计数器重置。

如此大的 Tq 值可能仅表明客户端闲置并没有发送任何请求。

您可以通过试验自己确认这一点 - 使用 nc 或 openssl 连接到您的服务器并以不同的时间间隔发出请求。