LINUX.ORG.RU

распределение нагрузки


0

0

Всем привет. Подскажите плз как лучше распределить нагрузку между серверами. Архитектура примерно такая: есть N специализированных серверов которые будут обрабатывают запросы клиентов. Клиенты это – браузеры. Kлиенты создают персистент соединение и начинают обмен данными с сервером. Первоночально я думал завести несколько сабдоменов sub1.example.com, … subN.example.com и клиент должен был бы с помощью XmlHttpRequest устанавливать соединение с одним из этих серваков, в зависимости от их загрузки. К сожелению, обнаружилось, что джаваскрипт может обратиться только к тому домену, с которого был загружен. Т.е если страница была загружена с www.example.com c помощью скрипта не удасться обратиться на sub1.example.com. Вообщем похоже, что для клиента должна быть одна точка входа, к примеру www.example.com, а запросы к этому серверу делегировать уже бэкэнду. Меня только смущает, что количество постоянных соединений может быть очень большим – десятки, а то и сотни тысяч. При таких нагрузках все что угодно загнётся. Можно конечно в днсе для этого адреса указать несколько ИП адресов, но такой вариант тоже не идеален. Вообщем поделитесь плз своими мыслями по этому поводу. Кстити может кто знает другие места где подобные вопросы можно обсудить?

anonymous

Re: распределение нагрузки

> При таких нагрузках все что угодно загнётся

лоадбалансеры сиско держат.. Охота Крепкое..

dilmah ★★★★★ ()

Re: распределение нагрузки

вообще, apache/nginx сам себе лоадбалансером может работать

friday ★★★ ()

Re: распределение нагрузки

Ещё в твоей ситуации clusterIP может вырулить. При штатной нагрузке в ~50000 я бы не советовал строить систему без него. ну ещё можеш настроить днс на раздачу нескольких IP на одно имя по алгоритму RoundRobin

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от dilmah

Re: распределение нагрузки

а не подскажеш случайно которая конкретно модель сиски в состоянии выдержать 200 000 одновременных коннектов?

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

гм. поддерживаю месье гика. при количестве подключений в несколько сотен с одновременным шейпингом и прочем на нескольких гигабитах цыски как-то смущаются. а комп способный это делать стоит $1000 включая серверный корпус и PCI-E сетевухи.

vahvarh

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

вобщем если нужен 1 IP - только Cluster IP

если ~5 IP допустимо на одно имя то можеш поигратся с ДНС что заметно проще чем cluster ip

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

Меня игра с днсом смущает ибо - <Многие DNS-сервера кэшируют у себя таблицы соответствий. Кэширование таблиц DNS может привести к тому, что схема кругового DNS вообще теряет всякий смысл.> И просветите что кластерИп такой? И что с помощью него можно держать столько открытых штпп соединений?

anonymous ()
Ответ на: Re: распределение нагрузки от anonymous

Re: распределение нагрузки

man iptables

ClusterIP позволяет статически распределить нагрузку на несколько серверов создавая из пула физических серверов один виртуальный + если прикрутить heartbeat получим неплохой файловер *БЕЗ* единично точки отказа.

тоесть это виртуальный балансировщик который падает *только* после падения последнего сервера. Если грохнется балансирующая сиска то недоступны будут *все* бекенды сразу. Сдесь же чтобы произошол полный и не восстановимый отказ надо чтобы упали *ВСЕ* сервера-бекэнды.

рекомендую ориентироватся на 4 бек-энда в штатном режиме или 8. Будет проще настраивать.

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

точнее берём максимально возможное количество соединений делим на 50000 и *увеличиваем* до степени двойки. Таким образом мы получим оптимально количество бекэндов

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от anonymous

Re: распределение нагрузки

>И что с помощью него можно держать столько открытых штпп соединений?

относительно просто маштабируется до 800000 в штатнов режиме и лимитом в 1048576 в пике.

Отмасштабировать на большее количество может быть проблемным. Дело было давненько конкретней суть проблемы не помню

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от anonymous

Re: распределение нагрузки

Эти штучки *ТОЛЬКО* для восстановления работоспособности кластера после отказа одной ноды.

к балансировке масштабируемости и прочему они имеют косвенное отношение а точнее ограничиваю максимальное количество серверов в пуле.

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от anonymous

Re: распределение нагрузки

ну как сказать вещь неплохая пока номинальная нагрузка находится в пределах 50000 одновременных соединений далее могут быть проблемы с масштабируемостью.

хотя в комбинации с clusterip реально отмасштабировать на *ЛЮБОЕ* реальное число одновременных соединений

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

> хотя в комбинации с clusterip реально отмасштабировать на *ЛЮБОЕ* реальное число одновременных соединений

А зачем clusterip ?

PEN+UCARP вполне себе решение и балансировка и отказоустойчивость, плюс поднимается элементарно.

Darkman ★★★ ()
Ответ на: Re: распределение нагрузки от Darkman

Re: распределение нагрузки

Для тех задач которые мне приходилось решать оно не годилось. Я отталкиваюсь от того с чем имел дело хотябы теоретически

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

> Для тех задач которые мне приходилось решать оно не годилось.

А сем негодилось ? (Действительно интересно)

> Я отталкиваюсь от того с чем имел дело хотябы теоретически

У меня очень нагруженный сайт с кучей JS прямо сейчас так и работает. Потому и рекомендую.

Darkman ★★★ ()
Ответ на: Re: распределение нагрузки от Darkman

Re: распределение нагрузки

>> Для тех задач которые мне приходилось решать оно не годилось.

>А сем негодилось ? (Действительно интересно)

я там поправился - я не пользовал потому что никто его не пользовал для моих задач а не потому что после долгого изучения пришел к такому выводу.

Возможно это связано с тем что оно неумеет работать без единичной точки отказа. я не встречал технологий отличных от ClusterIp которые умеют это делать

Например я самбу балансировал на кластер а не только апачи

>У меня очень нагруженный сайт с кучей JS прямо сейчас так и работает. Потому и рекомендую.

вопрос не в JS и нагрузке на процы а в количестве ОДНОВРЕМЕННЫХ соединений. Скажем твой сайт в состоянии выдержать 150000 одновременных соединений? я думаю навряд, в часности потому что такую нагрузку довольно проблемно создать

cvv ★★★★★ ()
Ответ на: Re: распределение нагрузки от cvv

Re: распределение нагрузки

> Возможно это связано с тем что оно неумеет работать без единичной точки отказа. я не встречал технологий отличных от ClusterIp которые умеют это делать

А где там единичная точка ? На каждую машину UCAP+PEN и жить оно будет пока хоть один сервак работает.

> в количестве ОДНОВРЕМЕННЫХ соединений. Скажем твой сайт в состоянии выдержать 150000 одновременных соединений? я думаю навряд, в часности потому что такую нагрузку довольно проблемно создать

ХЗ. 10000 выдерживал - именно такое количество проверялось перед постановкой в продакшн.

Darkman ★★★ ()
Ответ на: Re: распределение нагрузки от Darkman

Re: распределение нагрузки

>ХЗ. 10000 выдерживал - именно такое количество проверялось перед постановкой в продакшн.

выдержать 10 000 - не проблема

а скажем 100000 через балансировщик третьего уровня эт серьёзней задача. например для такого количества соединений потребуется их не только балансировать между бекендами но и между исходящими IP-адресами балансировщка (ибо только с одного IP можно сосздать только 65536 соединений). А такая ф-я не входит практически ни в какой стандартный балансировщик третьего уровня...

а ClusterIp - балансировщик второго уровня и следственно для него этот вопрос не подымается

cvv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.