Как работает упругая маршрутизация с помощью round robin?
Я смотрю на график, который показывает загрузку процессора на экземплярах EC2. Я замечаю, что когда для 1 EC2 процессор увеличивается на 2, он уменьшается одновременно. Через некоторое время (5 минут) они изменили, что 1 уменьшается, а 2 увеличивается, через 5 минут они снова меняются и так далее.
Вопросы
- Означает ли это, что запрос маршрута ELB на экземпляр в течение некоторого периода времени? Например, 10 секунд для одного экземпляра, затем 10 секунд для другого?
- Или это маршрутизирует пакетный запрос? Например, сначала 100 к 1 EC2, а затем 100 к 2 и так далее?
В документации сказано, что в AWS ELB используется циклический перебор. Но я думаю, что если бы они перенаправляли каждый запрос к следующему экземпляру, не было бы разных направлений, например, загрузка всех экземпляров была бы разной на 1-2% в нагрузке, но имела бы ту же тенденцию (увеличение или уменьшение). Я прав?
График такой (около 18 EC2, слева процент загрузки процессора):
ОБНОВЛЕНО
- Это классический балансировщик нагрузки
- Есть 2 зоны доступности, на 9 экземпляров в каждой зоне.
2 ответа
Как упоминал Майкл, липкие сеансы могут влиять на балансировку нагрузки входящих соединений.
Я не знаю, какое приложение вы запускаете, но вы всегда можете проверить журнал доступа веб-сервера или журнал доступа промежуточного программного обеспечения, который может дать вам представление о том, какие узлы получают трафик и когда.
С сайта AWS
Классический балансировщик нагрузки, узел балансировки нагрузки, который получает запрос, выбирает зарегистрированный экземпляр с использованием алгоритма циклической маршрутизации для прослушивателей TCP и алгоритма маршрутизации наименее ожидающих запросов для прослушивателей HTTP и HTTPS.
Но это может измениться, если у вас включены липкие сессии. с липкими сессиями:
Вы можете использовать функцию закрепления сеанса (также называемую привязкой сеанса), которая позволяет балансировщику нагрузки привязывать сеанс пользователя к конкретному экземпляру. Это гарантирует, что все запросы от пользователя во время сеанса отправляются одному и тому же экземпляру.
http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html
Могут ли липкие сессии вызывать поведение, которое вы видите?