Из что я понимаю, Tq time - это время между концом подтверждения 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 будет увеличиваться с каждым запросом по тому же соединению?
Нет, для постоянных соединений Tq - это время между завершением предыдущего ответа и получением текущего запроса. Счетчик сбрасывается после завершения ответа.
Столь большие значения Tq могут просто указывать на то, что клиент сидел без дела и не отправлял никаких запросов.
Вы можете убедиться в этом сами, поэкспериментировав - используйте nc или openssl для подключения к вашему серверу и выполнения запросов через разные промежутки времени.