Как должен работать HAProxy с циклической балансировкой нагрузки? - PullRequest
0 голосов
/ 12 декабря 2018

Мне кажется, что циклическое распределение нагрузки с помощью HAProxy не всегда является циклическим.Или это ошибка?

Я использую Hive-server2 для балансировки нагрузки.У меня есть 3 экземпляра для обслуживания запросов Hive.Клиент Билайн.Когда я запускаю свои длинные тесты на этом кластере компьютеров, экземпляры перезапускаются пару раз и один раз, даже если все экземпляры на странице статистики HAProxy отображаются в состоянии UP (и я вручную проверил, что сервер работает), только два экземпляра обслуживают все запросы в течение хороших 35-40 минут, когда приходит большая нагрузка, и с этого момента все возвращается к норме.

Итак, что я вижу по статистикеСтраница состоит в том, что все экземпляры были перезапущены 30 минут назад, и хотя серверы 2 и 3 обслуживали по 4-5 клиентских подключений каждое, сервер 1 не обслуживал их.Затем внезапно сервер 1 получает возможность обслуживать 9 клиентов параллельно, а два других сервера получают по 4-5 параллельно, каждый, и истинная балансировка циклического перебора возвращается к нормальной после этого.

Не должноHAProxy распределяет сеансы равномерно по всем серверам, которые работают, доступны и обслуживают меньше, чем максимально разрешенные сеансы, когда он настроен для циклического распределения?

1 Ответ

0 голосов
/ 14 декабря 2018

По умолчанию HAProxy должен отправлять запросы на все серверы, определенные в схеме распределения нагрузки, но у вас есть другие факторы, способствующие этому, например: timeout connect, timeout client, timeout server, cookie.Вы можете попробовать настроить эти параметры.

Имейте в виду, что есть разница, если вы балансируете нагрузку (уровень 7) http-запросы или (уровень 4) TCP-запросы.Например, возможно, HTTP-сервер возвращает ответы 400 s или 500 s, но TCP-соединение с сервером в порядке.

...