previous up next index search

Previous: 4.5.6.2 Язык HTML    UP: 4.5.6 WWW
    Next: 4.5.6.4 Строгая транспортная безопасность HTTP (HSTS - RFC-6797)

4.5.6.3 Балансировка нагрузки серверов
Семенов Ю.А. (ГНЦ ИТЭФ)

При создании серверов, где число внешних запросов очень велико, приходится использовать несколько серверов, загрузка которых балансируется специальным устройством или программой. Под балансировкой подразумевается перенаправление запроса с одного сервера на другой, если первый сервер занят или неисправен. Это могут быть WEB-серверы, почтовые серверы или серверы баз данных. При этом предполагается, что запросы приходят по сети. Смотри Next-gen load balancing: Delivering advanced Web apps.

Обычно системы балансировки загрузки серверов используют возможности уровня L4 (UDP/TCP). При этом контролируется доступность сервера по IP-адресу и номеру порта и принимается решение, какому из доступных серверов следует переслать запрос. Наиболее часто для выбора сервера используется карусельный алгоритм (round-robin). В этом варианте предполагается, что все запросы создают одинаковую загрузку и длительность исполнения. В более продвинутых вариантах алгоритма используется уровень занятости сервера и число активных соединений.

Раньше возможности балансировки нагрузки встраивались в саму прикладную программу или операционную систему.

Современные системы балансировки нагрузки должны удовлетворять следующим требованиям:

Здесь важно учитывать, что доступность IP-адреса и порта еще не гарантирует доступа к приложению.

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

Довольно существенные преимущества может предоставить система GSLB (Global Server Load Balancing), которая способна решать задачу балансировки для произвольно расположенных ферм серверов с учетом их удаленности от клиента. Эта система может поддерживать несколько разных алгоритмов распределения нагрузки и обеспечивать оптимальное обслуживание клиентов, разбросанных по всему миру. Для администраторов система дает возможность формирования гибкой политики управления ресурсами.

Одним из способов ускорения обслуживания является кэширование. В случае хорошо сконфигурированного кэша доля запросов, удовлетворяемых кэшем, может достигать 40%. При этом ускорение обслуживания может быть улучшено в 30 раз.

Еще одним методом ускорения обслуживания может служить архивация данных, так как в этом варианте понижается уровень перегрузки каналов сети.

Хорошим решением можно считать удаление услуг SSL с сервера, перенося его в систему балансировки нагрузки.

Дополнительный выигрыш в эффективности может дать мультиплексирование TCP-соединений (минимизация числа ТСР-сессий, выигрыш до 66%). Хорошего результата можно достичь, оптимизируя параметры ТСР-протокола.

Управление балансировкой нагрузки можно совместить с функцией прикладного Firewall (70% успешных вторжений использует уязвимости приложений) и с SSL VPN.

Возможная схема балансировки нагрузки серверов показана на рис. 1 (см. "Load balancing, Margaret Rouse).

Рис. 1. Схема балансировки нагрузки


Previous: 4.5.6.2 Язык HTML    UP: 4.5.6 WWW
    Next: 4.5.6.4 Строгая транспортная безопасность HTTP (HSTS - RFC-6797)