2

Мы планируем провести некоторые тесты производительности на веб-сайте, размещенном на некоторых экземплярах Amazon EC2. Вопрос в том, что если весь HTTP-трафик поступает с одних и тех же IP-адресов (например, в случае, когда многие разные клиентские узлы используют один и тот же публичный IP-адрес), EC2 loadbalancer перенаправляет весь трафик только на один из веб-серверов (экземпляров) ?Алгоритм балансировки нагрузки на балансировщике Amazon EC2

+0

Лучше использовать тестирование нагрузки с нескольких компьютеров. Вы можете генерировать больше нагрузки, как это, и получить более реалистичную балансировку нагрузки с помощью ELB. – Guy

+0

Согласовано. Больше машин может генерировать больше нагрузки. К сожалению, наше ограничение состоит в том, что мы генерируем нагрузку с той же машины. – pktCoder

ответ

0

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

ELB выполняет некоторую балансировку нагрузки с помощью DNS round robin. Кэшированный поиск DNS может привести к тому, что несколько запросов будут перенаправлены в одну и ту же зону.

+0

спасибо за понимание. Интересно, есть ли ссылка на описание того, как работает loadbalancer в AWS. Теоретически, loadbalancer может отключать запросы от одного и того же IP-адреса, вставляя дополнительные файлы cookie (специфичные для loadbalancer). Не знаю, реализована ли она на балансировщиках AWS. – pktCoder

1

Это имело обыкновение быть проблемой из-за кэширование DNS со стороны клиентов на самом деле (см моего ответа на Can Elastic Load Balancers correctly distribute traffic to different size instances больше по сравнению с предыдущим положением дел), но в основном был устранен, видимо, с недавним введением Elastic Load Balancing [...] Cross-Zone Load Balancing:

Мы рады объявить о поддержке балансировки нагрузки между зонами, , которая изменяет способ, которым балансировка эластичной нагрузки (ELB) направляет входящие запросы, что упрощает развертывание приложений по нескольким зонам доступности. [курсив мой]

анонсы предоставляет немного больше информации уже, но ссылки на Request Routing для деталей:

Если включить кросс-зоны балансировки нагрузки, вам больше не придется беспокоиться, что клиенты, кэширующие DNS-информацию, будут неравномерно распределены. И теперь, ELB гарантирует, что запросы распределены поровну с вашими задними экземплярами независимо от зоны доступности, в которой они находятся. [курсив мой]

Это еще не обрисовать точный алгоритм, используемый, но основным источником неравномерного распределения, кажется, решить, как это (я прочитал пост по крупным клиентом AWS недавно, кто сообщили, что их показатели становятся более или менее плоской кривой после включения переключателя на этом, но не напомните URL прямо сейчас).

+0

С благодарностью Steffen за дополнительную информацию. Я рассматриваю крайний случай, когда все пользователи получат доступ к веб-сайту (размещенному в AWS) с одних и тех же IP-адресов (например, если все пользователи имеют общий публичный IP-адрес). Подумайте, будет ли ELB загружать-балансировать запросы на разные хосты. Обратите внимание, что есть улов: запросы от одних и тех же пользователей обычно должны быть перенаправлены на один и тот же экземпляр сервера. Если ELB вставляет свой собственный файл cookie, он может использовать его для определения того, являются ли запросы от одного и того же пользователя или нет. – pktCoder

Смежные вопросы