Назад | Перейти на главную страницу

как постоянные HTTP-соединения (http-keep-alive) влияют на значение Tq?

Из что я понимаю, 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 для подключения к вашему серверу и выполнения запросов через разные промежутки времени.