Previous: 4.5.6.2 Язык HTML
UP:
4.5.6 WWW Next: 4.5.6.4 Строгая транспортная безопасность HTTP (HSTS - RFC-6797) |
При создании серверов, где число внешних запросов очень велико, приходится использовать несколько серверов, загрузка которых балансируется специальным устройством или программой. Под балансировкой подразумевается перенаправление запроса с одного сервера на другой, если первый сервер занят или неисправен. Это могут быть 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) |