Load balancer
От: hpux100  
Дата: 22.08.11 18:15
Оценка:
Интересует опыт реализации своего Load balancer. Есть несколько серверов типа кластера, обрабатывающих графику, фрамеворк самописный данные передаются по tcp/ip и udp. Фактические на кластере обрабатываются двоичные данные поступающие из одного места, компьютеры в кластере SMP, операции интенсивно нагружают как диск так и оперативную память с процессором. У кого какой есть опыт как грамотно построить архитектуру балансировщика, а также алгоритм распределения данных по хостам в зависимости от их текщей загрузки?
Re: Load balancer
От: Gurney Великобритания www.kharlamov.biz
Дата: 22.08.11 18:56
Оценка: 5 (3)
Здравствуйте, hpux100, Вы писали:

Самый простой способ создать очередь задач и запустить на каждом рабочей машине фиксированное количество процессов. Раз количество процессов фиксированное, будет ограничено количество одновременных запросов к оборудованию.

Каждый процесс будет брать из очереди задание, выполнять его и ждать следующего. И так в цикле до бесконечности. Хост, к-ый полностью загружен просто не будет брать задания.

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

Дальше начинаются танцы с бубном.
* Какой критерий оптимизации throughput или latency?
* Есть ли разделяемое хранилище данных или нужно лить задания сразу на хосты?
* Длительность выполнения задания?
* Какое время миграции задания на хост?
* Есть ли нагрузка на хосты другими приложениями?
* Задания одинакового размера или разные?
* Нужно ли повторять задание, если хост который его взял на выполнение — упал?
Re[2]: Load balancer
От: pagrus  
Дата: 23.08.11 19:39
Оценка:
+1. Очередь плюс пул исполнителей хорошо ложится на не-интерактивную обработку.
В зависимости от реализации может понадобиться следить/ограничивать глубину очереди.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.