Вопрос: Высокие значения Tq для HAProxy


Я просто взял на себя управление новой средой. Известная проблема заключается в том, что среда известна высоким временем отклика (20+ секунд), поэтому я решил включить haproxy-протоколирование и посмотреть, что происходит. Я решил, что я увижу медленное время загрузки на серверах приложений, но на самом деле я вижу высокие значения Tq в HAProxy. HAProxy находится на EC2 и не отстает от ELB.

Sep  5 14:22:00 haproxy-apps01 haproxy[24695]: 76.14.153.221:3371 [05/Sep/2012:14:21:49.780] http-in default_apps/fe04-c 10936/0/0/55/10991 200 488 - - ---- 111/111/0/1/0 0/0 "GET /event_times/next?callback=jQuery170189312373075111_1346854917562&_=1346854918453 HTTP/1.1"

Как вы можете видеть, у этого есть Tq около 10 секунд. Не все Tq высоки (1+ секунд), но хороший процент из них (около 35%). Обычно, когда я вижу это поведение, я ожидаю, что будут проблемы с сетью, но это невероятно высокий процент посетителей, чтобы иметь такую ​​проблему, поэтому мне интересно, видел ли кто-нибудь это или какие-либо намеки на диагностику если проблема может быть в этом поле?


6
2017-09-05 14:29


Источник




Ответы:


Высокие Tq-времена не всегда указывают на проблему, http-server-close задавать?

Согласно документации:

Настройка «опция http-server-close» может отображать большее время запроса   так как «Tq» также измеряет время ожидания дополнительного   Запросы.

Например, для Stack Overflow и для некоторых примеров данных выполняется следующий запрос:

Select Top 20 Tq from LogsLastTwoDays WITH (NoLOCK) WHERE
CreationDate > DATEADD(minute, -5, GETUTCDATE()) AND 
ResponseCode = 200 AND Host = 'stackoverflow.com'
ORDER by Tq DESC

Урожайность:

Tq    
----- 
14990 
14987 
14986 
14983 
14974 
14972 
14972 
14965 
14964 
14964 
14962 
14961 
14960 
14955 
14952 
14951 
14945 
14943 
14935 
14932 

Это связано с тем, что http-server-close, соединение остается открытым для клиента (постоянное соединение) до timeout http-keep-alive 15s в нашей среде.

Я обычно сосредотачиваюсь на Tr во-первых, потому что это показывает время отклика между LB и сервером.


4
2017-09-05 14:33



Извините, я должен был указать. Нет, http-server-close не установлен - Will
@Will: Ладно, оставим это, если кто-то другой будет иметь тот же вопрос в будущем. Тогда я предполагаю, что это проблема сети / ресурса. Вы проверили dmesg и все жизненные силы? Нет проблем с заполнением таблицы conntrack и т. Д.? - Kyle Brandt♦
Как примечание, что вы используете для запроса журналов? - Will
@Will: Мы написали сервис, который принимает данные syslog через UDP, анализирует его с помощью регулярного выражения и вставляет его в MS SQL Server. Каждый день получает свой собственный стол. - Kyle Brandt♦
Вы все отправили исходный код в любом месте? Хотелось бы изменить его, чтобы отправлять данные в другом месте. - Will


Вставка вашей конфигурации где-то может помочь.

Это может быть связано с настройкой тайм-аута и с режимом HTTP. Как упоминал Кайл, я бы проголосовал за вариант http-server-close. Поскольку вы не включили его, вы, возможно, подвергнетесь медленной атаке.

Не могли бы вы настроить параметр «timeout http-request» на 5 секунд и посмотреть, есть ли у вас эта строка или если они заменены на ответ 408?

ура


4
2017-09-05 15:21



Отличное видео по медленной атаке - youtube.com/watch?v=XiFkyR35v2Y - Siddhartha