Схемы балансировки нагрузки для web-серверов

автор: Александр Качанов
перевод: n|a

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

Нет денег на Cray? А зачем?

Возможность наращивать мощь системы очень важна в сегодняшнем мире высокой конкуренции. Вполне реальна ситуация, что наращивать мощь вашей системы вам придется уже во время ее работы. Никто не будет тратить деньги на постройку системы, которая по мощности в несколько раз превышает ожидания ближайшего будущего. И в то же время ошибкой будет строить системы без возможности их расширения в будущем.

Многопроцессорные компьютеры уже много лет являются одним из способов наращивания мощности системы. Но является ли это решение единственным? Для некоторых приложений, пожалуй, да. Для других же, таких например, как web-приложения, конечно же - нет. Оно не только не единственное, оно еще и не самое лучшее.

С точки зрения бюджета

На первый взгляд кажется, что добавить еще один процессор в машину будет стоить дешевле, чем купить еще целый сервер. Но так ли это? В большинстве случаев сама стоимость многопроцессорной системы уже на порядок выше, чем у обычной машины. Для поддержания многопроцессорной структуры требуется много дополнительных устройств и приложений. Очень часто многопроцессорная машина завязана на аппаратное обеспечение определенной фирмы. Для того, чтобы усилить систему вам придется покупать не просто еще один процессор, а дорогую плату с процессором. При использовании спарки серверов вы не привязаны к какой-либо фирме-изготовителю. Вы вольны покупать дополнительные сервера там, где вам выгодно.

Масштабируемость

Вне зависимости от конструкции в машину можно установить определенный максимум процессоров. Многие дешевые сервера позволяют установить лишь два процессора. Многие высококлассные дорогие сервера имеют предел в 16 процессоров. Сравните: в спарке серверов может участвовать до 255 машин.

Производительность

Производительность сервера зависит от нескольких факторов: скорости работы процессора, памяти, системной шины, операционной системы и проч. В спарке серверов каждый сервер имеет свой собственный процессор, свой объем памяти, свою операционку и проч. В многопроцессорных же системах большинство ресурсов находятся в общем пользовании. Любой из перечисленных факторов может стать узким местом и тем самым ухудшить работу системы в целом, даже несмотря на добавление процессоров. В спарках же прирост мощности линейно зависит от количества машин.

Технологическое отставание

Мы все знаем, что компьютерные технологии развиваются семимильными шагами. Процессор, который считается верхом совершенства сегодня, через короткое время будет считаться медленным и устаревшим. В многопроцессорных машинах вы привязаны к определенной технологии и времени, когда она использовалась. Через несколько лет вы может быть даже не сможете найти нужный вам процессор. А даже если вы найдете его, станете ли вы платить немаленькую сумму за старье?

Гибкость

Во многопроцессорных машинах работает один тип операционной системы, один тип процессора, один тип памяти и так далее. Не так уж много пространства для маневра. Используя спарку серверов, вы можете смешивать машины с различными операционками, процессорами и объемами памяти. Если пожелаете, в спарку можно добавить и многопроцессорную машину. Различным машинам в спарке можно присвоить свои весовые коэффициенты, так что на более быстрые машины ляжет большая нагрузка, чем на более медленные.

1. Нет денег на Cray? А зачем?
2. Web-сайты из нескольких серверов
3. Схемы распределения нагрузки во многомашинной системе
- Круговой DNS
- Аппаратное распределение нагрузки
- Программное распределение нагрузки
- Смешанные решения
4. Пару слов о "привязке"
5. Заключение

Rambler's Top100
Rating All.BY
Akavita
Valid XHTML 1.0!