@druoleg
DevOps'твующий

Как настроить HAProxy и ОС для обработки 30к запросов/секунду?

Добрый день!
Имеется две площадки:
1. jMeter (50 нод + управляющая);
2. HAProxy -> 6 нод с веб-серверами;
Площадки находятся в разных регионах страны, на обоих есть канал - 1 Гбит\сек.
jMeter используется для имитации однотипного действия - 10 шагов для заполнения формы (получение статики, справочников, отправка формы в виде json-запроса). Выставлены примитивные Assertions на respone. С каждой ноды запускается по 300 "пользователей", заполняющих форму дважды. Итого получаем 50 х 300 х 10 х 2 = 300к запросов.
HAProxy, как мне кажется, не испытывает особых сложностей, ибо в начале теста ЦП грузится, но практически сразу нагрузка падает.

Используется Ubuntu 18.04 Server LTS.

Тесты показывают (как в HTTP, так и в TCP режиме), что первые запросы обрабатываются достаточно быстро, примерно 12к запросов\сек, при среднем времени отклика 0,5 сек. А дальше начинается беда, как я предполагаю, на сетевом уровне - я грешу на нехватку свободных портов, ибо в ОС TIME_WAIT длится 60 секунд. И если сопоставить время "залипания" результатов jMeter и немногочисленных Connection Refused, получается, что во время теста исчерпывается лимит пула соединений, он переходит в состояние TIME_WAIT и клиенты ждут пока "не освободится место".

Я пробовал использовать Round Robin, но на площадке всего один канал и HAProxy сидит за NAT.
Технических деталей не прикладываю, ибо пока не "устаканил" конфигурацию.
Буду рад любой рекомендации.
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MR27
Разделение сокетов, множество экземпляров слушающих один сокет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы