Бабичев В.Д.

Национальный технический университет Украины “Киевский политехнический институт”, Украина

Балансировка нагрузки 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