据我所知 ,Tq时间是TCP客户端握手结束和最后一个HTTP头被读取的时间之间的时间。
haxproxy 1.4手册将Tq时间描述为:
Tq:获取客户端请求的总时间(仅限HTTP模式)。 这是从客户端连接被接受到代理收到最后一个HTTP头之间的时间。 值“-1”表示头(空行)的结尾从未被看见。 当客户过早或超时closures时会发生这种情况。
资料来源 : http : //www.haproxy.org/download/1.4/doc/configuration.txt
我想了解Tq是如何logging持续连接的。 我的理解是否正确,如下图所示?
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时间将随同一连接上的每个请求而增加?
不,对于持续连接,Tq将是前一个响应完成和接收到当前请求之间的时间。 计数器在完成响应后重置。
所以大的Tq值可能只是表示客户端坐在那里闲置而没有发送任何请求。
您可以通过尝试来确认这一点 – 使用nc或openssl连接到您的服务器,并以不同的时间间隔发出请求。