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

HaProxy Frontend для Backend очереди и таймаутов

Я просто пытаюсь осмыслить очереди / тайм-ауты в HaProxy между фронтендом, бэкэндом и сервером. Я все еще изучаю TCP, сокеты, соединения и т.д., так что простите меня, если какой-либо из этих вопросов не имеет смысла. Я просто ищу подтверждения / разъяснения по некоторым из этих пунктов:

Клиентские подключения и балансировка нагрузки внешнего интерфейса

Сам Haproxy имеет Глобальный maxconn предел (я назову это gmc). Насколько я понимаю, это gmc на входящий соединения от клиентов (перенаправленные на внешние интерфейсы).

Тогда каждый интерфейс имеет свой собственный maxconn установка (я назову это femc).

Если мой gmc является 40, и у меня есть два интерфейса, каждый с femc из 10 и я получаю 50 запросы в сразу.

Вопросы:

Соединения с сервером и организация очереди запросов

Продолжая приведенный выше пример, мы добавим по одному бэкэнду для каждого интерфейса, оба с двумя серверами с maxconn из 2 каждый (smc) и maxqueue из 1 (smq).

Таким образом, каждый бэкэнд может обрабатывать 4 одновременных запроса (2 на сервер) и будет ставить в очередь 2 запроса (1 на сервер) всего 6 запросов на бэкэнд.

Вопросы:

Я спрашиваю обо всем этом, потому что у нас есть старый сервер с ОЧЕНЬ разнородными свойствами запроса. Некоторые могут произойти в 10ms, некоторые 10s. В настоящее время у нас нет никаких ограничений на подключение к серверу, и мы видим, что некоторые из невыполненных запросов нашего веб-сервера заполняются из-за очень медленных запросов, в то время как другие почти бездействуют. В конечном итоге я пытаюсь немного сгладить это.

Любые ответы на вышеуказанные вопросы будут СУПЕР полезными!