Кто-нибудь знает простой алгоритм (формула) балансировки нагрузки, который связывает подключенных пользователей, загрузку процессора, загрузку сети и использование памяти? Это будет использоваться для сравнения различных серверов и назначения новому пользователю лучшего на данный момент. Спасибо.




Если вы используете веб-сервер Apache для прокси серверов приложений, я рекомендую вам использовать mod_proxy и mod_proxy_balancer. Вы можете найти краткое введение в mod_proxy здесь. Речь идет о Jetty, но это легко применимо к другим серверам.
Первое, о чем вам нужно беспокоиться при кластеризации, - это способ обработки сеансов. Вы должны быть уверены, что запрос, принадлежащий сеансу, направлен на тот же сервер (или сеанс каким-то образом сохраняется, а затем всегда извлекается). Mod_proxy может сделать это за вас.
Относительно алгоритма балансировки нагрузки см. Документацию mod_proxy_balancer. В соответствии с ним существует 3 алгоритма планировщика балансировщика нагрузки.
Более старое решение для балансировки нагрузки - mod_jk.
В общем, я бы не реализовал это сам, даже если бы у меня был алгоритм получше. Лучше использовать существующее решение.
Взгляните на nginx. Его легко настроить, он очень быстр и выполняет балансировку нагрузки между серверами.
Соответственно, требуется распределенная обработка сеансов (подробности см. В kgiannakakis).
Взгляните на haproxy. Это чрезвычайно стабильный и быстрый балансировщик нагрузки HTTP / TCP, который используется некоторыми веб-сайтами с чрезвычайно высокой посещаемостью.
Соответственно, требуется распределенная обработка сеансов (подробности см. В kgiannakakis).