Бабичев В.Д.
Национальный
технический университет Украины “Киевский политехнический институт”, Украина
Балансировка нагрузки Web-серверов
Сеть Интернет развивается с каждым днем, и
количество пользователей сети продолжает увеличиваться с невиданной скоростью.
Все более актуальным становится вопрос скорости и качества доставки информации.
Существует несколько способов повышения
быстродействия сайта: увеличение полосы пропускания, установка
высокопроизводительного сетевого оборудования, разработка более эффективных
приложений, оптимизировать и модернизировать программные и аппаратные
компоненты сервера, а также взять на вооружение технологию кэширования в среде
Web [1].
Еще один способ повышения производительности
Web-узла состоит в том, чтобы увеличить количество Web-серверов и размещать на
них “зеркальные” копии материалов. Таким образом можно распределить общую
нагрузку по всем компонентам системы и сократить время возврата информации то
есть, выполнять распределять загрузку серверов.
Балансировка нагрузки — распределение
процесса выполнения заданий между несколькими серверами сети с целью оптимизации
использования ресурсов и сокращения времени вычисления [2].
На текущий день большинство систем
распределения нагрузки основывается на основе технологии “Round-robin DNS”
В простейшем случае “Round-robin DNS” работает, отвечая на запросы не только одним
IP-адресом, а списком из нескольких адресов серверов, предоставляющих идентичный
сервис. С каждым ответом, последовательность ip-адресов меняется. Как правило,
простые клиенты пытаются устанавливать соединения с первым адресом из списка,
таким образом разным клиентам будут выданы адреса разных серверов, что
распределит общую нагрузку между серверами
[3].
Существуют и более
развитые системы, которые принимаю
решение о распределении клиентских запросов анализируя текущие показатели
системы. Рассмотрим одну из таких система балансировки состоящую из трех
модулей:
·
модуль
внутреннего мониторинга;
·
модуль
внешнего мониторинга;
·
модуль
распределения нагрузки.
Модуль внутреннего мониторинга – сканирует и
анализирует загруженность сервера - состояние нагрузки на процессор, жесткие
диски, использование оперативной памяти.
Модуль внешнего мониторинга – отслеживают
доступность серверов, загрузку каналов передачи данных, и т.д.
Модуль распределения нагрузки – анализирует
полученные данные от модулей мониторинга и принимает решение о распределении
пользовательских запросов между серверами.
Приведем
пример реализации данной системы.
Рис.1 - Схема реализации системы балансировки нагрузки
В
данной схеме на каждом из WEB-серверов установлен модуль внутреннего
мониторинга, а на серверах балансировки находятся модули внешнего мониторинга и
распределения нагрузки. Модуль внутреннего мониторинга расположенный на WEB-серверах отправляет сообщения о загруженности каждому
их серверов балансировки, чем достигается полная синхронизация данных на
серверах балансировки.
Для
получения доступа к сайту domain.com клиентская машина посылает запрос DNS
серверу, который возвращает ей IP-адрес по которому доступен сайт. После этого
клиент генерирует необходимы HTTP-запрос который передается на сервер
балансировки. Сервер балансировки, анализируя данные о доступности, а также
загруженности рабочих станций системы принимает решение кому передать
клиентский запрос для обработки данных.
Каждый
из серверов балансировки нагрузки постоянно проверяется на доступность другими
балансировщиками. В случае выхода основного сервера из строя, второй – посылает
запрос авторитетному DNS серверу об изменении IP-адреса для сайта
“www.domain.com” на адрес по которому доступен второй сервер балансировки.
Данная системы позволяют
не только равномерно распределить нагрузку, но
также повышают отказоустойчивость системы в целом. Например, при выходе одного
из серверов запросы пользователей будут автоматически перенаправляться на
другие рабочие станции системы, что предотвратит недоступность сервисов.
Литература:
1. “Балансировка нагрузки сети”, сайт microsoft.com
2. “Балансировка нагрузки”, сайт ru.wikipedia.org
3. “Системы балансировки нагрузки Web-серверов”, сайт citforum.ru