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

Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)

При создании серверов, где число внешних запросов очень велико, приходится использовать несколько серверов, загрузка которых балансируется специальным устройством или программой. Под балансировкой подразумевается перенаправление запроса с одного сервера на другой, если первый сервер занят или неисправен. Это могут быть 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)