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

Apache, работающий как обратный прокси-сервер, с использованием балансировщика прокси-сервера, похоже, не распределяется равномерно

У нас Apache работает как обратный прокси-сервер с использованием балансировщика прокси, мы запускаем нагрузочный тест jMeter с 7 облачных машин, но трафик, похоже, не распределяется равномерно Я думаю, что это проблема конфигурации Apache, но не уверен, что

В основном в нашей директиве VirtualHost у меня есть:

   ProxyPreserveHost on
   ProxyRequests Off
   ProxyPass / balancer://my-site/
   ProxyPassReverse / balancer://my-site/
   Header add Set-Cookie "route=.%{BALANCER_WORKER_ROUTE}e; path=/"

и

<Proxy balancer://my-site>
   BalancerMember https://MYMACHINE:8443 route=1 loadfactor=20
   BalancerMember https://MYMACHINE:8443 route=2 loadfactor=20
   ProxySet stickysession=route
</Proxy>

Сначала у него не было loadfactor = 20, и балансировка нагрузки не была выполнена хорошо, после того, как я добавил ее, было улучшение, но не большое. Трафик по-прежнему будет направляться на 1-2 машины больше, чем на другие (всего у нас 5 машин).

Поскольку вы запускаете липкие сеансы, вы не можете ожидать, что рабочая нагрузка на каждого участника будет ровной. Если я вас правильно понимаю, у вас есть 7 машин, отправляющих запросы, и 5 машин в балансировщике для ответа на эти запросы - если это так, то 3 сервера получают по 1 клиенту, а 2 сервера получают по 2 клиента - так что это вполне ожидаемо.

Это будет равномерно по мере увеличения количества узлов, но невозможно получить идеально равномерное распределение, когда вы используете липкий сеанс.

При динамическом назначении запроса по умолчанию учитывается назначенное количество запросов, но, очевидно, нельзя внести изменения в узел после того, как он был закреплен; это не считается, сколько узлов было прикреплено к каждому бэкэнду.

Вы можете попробовать добавить ProxySet lbmethod=bybusyness на ваш <Proxy balancer://my-site> конфигурация; это может помочь немного выровнять ситуацию для более высоких нагрузок (но ничего не изменит, когда вы имеете дело с таким низким количеством клиентов).