Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Windows 2000/NT Администрирование Балансировка нагрузки сети: описание технологии RSS

Балансировка нагрузки сети: описание технологии

Текущий рейтинг: 4.29 (проголосовало 14)
 Посетителей: 22560 | Просмотров: 31887 (сегодня 0)  Шрифт: - +

Производительность балансировки нагрузки сети

Влияние балансировки нагрузки сети на производительность отмечается в следующих четырех областях:

  • Накладные расходы ресурсов ЦП на узлах кластера, то есть процент вычислительной мощности процессора, необходимый для анализа и фильтрации сетевых пакетов (предпочтительно меньшее значение).
  • Время отклика на запрос клиента, которое возрастает пропорционально неперекрывающейся части накладных расходов ресурсов ЦП, называется задержкой (предпочтительно меньшее значение).
  • Пропускная способность к клиентам, увеличивающаяся при росте потока данных от клиентов, который кластер может обработать до достижения максимальной нагрузки на узлы (предпочтительно большее значение).
  • Загрузка коммутатора, растущая при увеличении потока данных от клиентов (предпочтительно меньшее значение). Загрузка не должна критически влиять на пропускную способность портов.

Кроме того, масштабируемость службы БНС определяет степень роста производительности кластера при добавлении новых узлов. Для масштабируемости производительности необходимо, чтобы накладные расходы ресурсов ЦП и время задержки увеличивались медленнее, чем число узлов.

Накладные расходы ресурсов ЦП

Любые технологии балансировки нагрузки сети требуют дополнительных ресурсов, затрачиваемых на анализ поступающих пакетов и принятие решений об их распределении (т.е.  эти накладные расходы снижают также производительность сети). Как было отмечено ранее, решения на основе диспетчеризации анализируют пакеты, изменяют их и пересылают определенному узлу кластера. Как правило, диспетчеры меняют IP-адреса, чтобы перенаправить пакеты с виртуального IP-адреса кластера на IP-адрес выбранного узла. В отличие от технологий диспетчеризации, служба БНС одновременно рассылает входящие пакеты всем узлам кластера и использует алгоритм фильтрации, позволяющий отклонять пакеты на всех узлах, кроме нужного. Фильтрация приводит к меньшим накладным расходам ресурсов на доставку пакета по сравнению с диспетчеризацией, что в результате дает меньшее время отклика и более высокую общую пропускную способность.

Алгоритм фильтрации службы БНС параллельно работает на всех узлах кластера. Накладные расходы ресурсов на фильтрацию измеряются в процентах от вычислительной мощности ЦП, используемой на всех узлах. Эти накладные расходы растут пропорционально интенсивности поступления пакетов (так же как затраты на маршрутизацию в технологиях распределения нагрузки диспетчером) вне зависимости от количества узлов в кластере. Например, если в кластере из двух узлов накладные расходы ресурсов ЦП составляют P% на узел для обработки заданного количества пакетов, этот процент будет таким же и в кластере с 32 узлами. При удвоении количества пакетов накладные расходы ресурсов ЦП становятся равными 2P.

На практике, при увеличении нагрузки узлы добавляются в кластер пропорционально росту числа запросов. В этом случае накладные расходы ресурсов ЦП возрастают линейно с ростом количества пакетов и узлов.

В приведенном выше примере 32-узлового кластера накладные расходы ресурсов ЦП на один узел составят 16P для обеспечения 16-кратного увеличения числа запросов и пропускной способности по сравнению с двухузловым кластером с накладными расходами ресурсов ЦП, равными P.

Накладные расходы ресурсов на фильтрацию при распределении нагрузки возрастают линейно при увеличении потока пакетов. При пиковой нагрузке сети Fast Ethernet 100 Мб/с на фильтрацию пакетов службой БНС будет расходоваться приблизительно 5,8%  ресурсов центрального процессора с частотой 450 МГц. Следует отметить, что для многопроцессорных узлов процент загрузки ЦП представляет только часть всех ресурсов ЦП, доступных узлу. Экстраполируя приведенный выше график, можно подсчитать, что для обработки 2 993 веб-страниц объемом 10 Кб/с (то есть более 258 млн. посещений в день) накладные расходы на фильтрацию пакетов составят 12,9%  ресурсов ЦП каждого узла.

Коэффициент пропорциональности накладных расходов ресурсов и пропускной способности зависит от объема и типа запросов клиентов. Например, при постоянной пропускной способности запросы GET для веб-страниц объема 1 КБ потребуют больших расходов на фильтрацию по сравнению с запросами на чтение веб-страниц объемом 10 КБ. Поскольку накладные расходы на отслеживание подключений клиентов выше, чем на отслеживание пакетов внутри подключения, запросы клиентов, требующие большего количества откликов, требуют меньших накладных расходов ресурсов на фильтрацию.

Вторым типом накладных расходов ресурсов ЦП, имеющих отношение к работе службы БНС, являются расходы на обработку пакетов в процессе передачи данных, называемые накладными расходами ресурсов ЦП на передачу. Поскольку служба распределения нагрузки сети реализована в виде промежуточного драйвера, она перенаправляет все сетевые пакеты, проходящие через сетевой адаптер кластера. Эта обработка пакетов является конвейерной и вносит крайне незначительные задержки в передачу данных. Накладные расходы ресурсов ЦП на передачу пропорциональны потоку пакетов для отдельного узла, а не для всего кластера. Таким образом, при добавлении в кластер узлов в соответствии с ростом нагрузки они остаются постоянными.

Иногда полезно представлять кластер как набор отдельных компьютеров-"контейнеров", обрабатывающих клиентскую нагрузку. Служба БНС распределяет запросы клиентов между этими контейнерами, чтобы добиться как можно более равномерной загрузки компьютеров. Процесс распределения нагрузки требует затрат незначительной часть ресурсов ЦП в каждом контейнере, и эта часть возрастает пропорционально увеличению потока пакетов (накладные расходы на фильтрацию растут пропорционально общему потоку пакетов, а расходы на передачу — пропорционально потоку пакетов через отдельный узел кластера). Общее количество узлов, которые необходимо включить в кластер, зависит от производительности узлов и характеристик серверного приложения. Приложения, активно потребляющие ресурсы ЦП (например, веб-серверы с технологией ASP), могут потребовать включения в кластер большего количества ЦП по сравнению с веб-серверами, содержащими статические веб-страницы. В соответствии с высокими потребностями в ресурсах ЦП такие приложения обрабатывают меньший объем сетевых данных и требуют наличия большего количества узлов, в отличие от приложений, которым для обработки одного запроса клиента необходимо меньше ресурсов ЦП.

Пропускная способность и время отклика

Служба балансировки нагрузки сети позволяет масштабировать производительность, повышая пропускную способность и минимизируя время отклика на запросы клиентов. При достижении максимальной нагрузки узла кластера он не может обеспечить дополнительную пропускную способность, и время отклика увеличивается нелинейно, а клиенты ощущают задержку отклика на свои запросы. Добавление в кластер новых узлов дает возможность и далее наращивать пропускную способность и уменьшать задержки, что приводит к сокращению времени отклика. В дальнейшем по мере роста требований к пропускной способности можно добавлять в кластер новые узлы, пока не будет достигнута максимальная загрузка подсети. После этого пропускную способность можно увеличивать за счет использования нескольких кластеров под управлением службы БНС и распределения потока данных между ними с помощью службы доменных имен «карусельной» (Round Robin) DNS. Такой подход применяется, например, для веб-узла Microsoft.com, который в настоящий момент функционирует на пяти шестиузловых кластерах, управляемых службой балансировки нагрузки.

На практике узлы добавляются в кластер до тех пор, пока загрузка их ЦП не достигнет установленного значения при ожидаемом количестве запросов. При этом для каждого узла поддерживаются дополнительные свободные ресурсы ЦП, необходимые для обработки дополнительной загрузки в случае сбоя. Например, узлы кластера Microsoft.com используют, как правило, 60% ресурсов ЦП, чтобы без труда обслуживать нагрузку в случае выхода одного узла из строя.

Все участники распределения нагрузки несут накладные расходы ресурсов, влияющие на масштабирование пропускной способности и время отклика. При использовании службы БНС для масштабирования производительности приложений в получаемом кластере отсутствуют «узкие места», ограничивающие производительность при добавлении новых узлов. При включении в кластер новых узлов общая пропускная способность должна повышаться линейно. Служба БНС использует конвейерную технологию, минимизирующую рост времени отклика, называемый задержкой, вследствие накладных расходов ресурсов на фильтрацию и передачу. В результате накладные расходы ресурсов ЦП на работу службы БНС вносят незначительный вклад в задержку. Сложность взаимодействий частей операционной системы затрудняет непосредственную оценку времени задержки. Предварительные измерения, выполненные в ходе описанных выше тестов, включавших доступ к статическим страницам объема 10 КБ, показали, что рост времени задержки составляет приблизительно один процент от общего времени ожидания (получения первого байта запроса GET).

Задержка и связанные с ней накладные расходы ресурсов ЦП на фильтрацию влияют на производительность, в конечном счете, ограничивая максимально возможную пропускную способность, которая может быть достигнута при увеличении потока пакетов. Накладные расходы ресурсов ЦП на передачу ограничивают пиковую пропускную способность отдельного узла в сравнении с узлом с отключенной службой БНС, но без возможности масштабирования нагрузки. Поскольку скорость обслуживания приложения узла обычно возрастает пропорционально интенсивности использования ЦП, накладные расходы ресурсов ЦП в результате ограничивают общую пропускную способность узла. Исходя из предположения, что поток запросов от клиентов растет вместе с количеством узлов, масштабирование пропускной способности для N полностью загруженных узлов кластера ограничено ростом накладных расходов ресурсов ЦП на фильтрацию. Если R1 — это максимальная пропускная способность одного узла, максимальная пропускная способность узла в составе кластера из N-узлов рассчитывается по формуле:

RN = C * (1 – (N * (RN / R1)*OF)), где R1 = C * (1 – OF)

где OF — процент ресурсов ЦП, используемый службой БНС для фильтрации клиентских запросов при пропускной способности R1, а C — постоянная, соответствующая скорости обслуживания при заданном проценте использования ресурсов ЦП. Эти накладные расходы ресурсов на фильтрацию возрастают пропорционально количеству узлов (однако обратно пропорциональны отношению RN / R1) и снижают максимальную скорость обслуживания каждого узла при добавлении узлов в кластер. Следует отметить, что если переменная OF = 0, в кластере наблюдается линейное увеличение пропускной способности в зависимости от значения N. Для приложений с высокими требованиями к ресурсам процессора накладные расходы ресурсов ЦП при распределении нагрузки будут меньше для заданного потока запросов, что повышает возможности масштабирования при добавлении в кластер новых узлов.

На практике полная загрузка всех узлов случается редко, поскольку всегда необходимо иметь резерв ресурсов ЦП для обработки дополнительной нагрузки, возникающей в результате сбоя одного из узлов. Когда пропускная способность при работе кластера ниже максимальной, задержка и накладные расходы ресурсов, связанные с распределением нагрузки, не ограничивают пропускную способность, и кластер демонстрирует линейный рост этого показателя.

Служба БНС используется для построения кластеров с чрезвычайно высокой пропускной способностью. В процессе последней демонстрации работы (на выставке Comdex в Лас-Вегасе в 1999 г.) служба балансировки нагрузки сети использовалась для обеспечения масштабируемости производительности веб-узла электронной торговли. Веб-узел был запущен на кластере из шести многопроцессорных узлов под управлением службы БНС и подключен к кластеру внутренней базы данных, состоявшему из двух узлов. Сто клиентов создали общую загрузку объемом 1600 запросов GET в секунду (то есть 830 млн. запросов в день). Веб-сервер имел пропускную способность более 200 Мб/с при 50 000 одновременных подключений. Этот пример наглядно демонстрирует возможности службы БНС по масштабированию нагрузки больших веб-узлов.

Рисунок 2 - Измеренная пропускная способность службы БНС

Загрузка коммутатора

Архитектура фильтрации службы БНС осуществляет одновременную доставку запросов клиентов всем узлам кластера с помощью широковещательной подсети. В небольших кластерах эта подсеть для соединения кластеров может быть реализована с помощью концентратора. Каждый пакет данных от клиента автоматически передается всем узлам кластера. В кластерах большего размера для соединения узлов используется коммутатор. При этом служба БНС по умолчанию использует для одновременной передачи пакетов всем узлам лавинную маршрутизацию в коммутаторе. Важно убедиться в том, что лавинная маршрутизация не приводит к чрезмерной загрузке коммутатора, особенно когда он используется совместно с другими компьютерами, не входящими в кластер. Компьютеры, не являющиеся узлами кластера, не получают пакеты клиентов при использовании лавинной маршрутизации. Процент пропускной способности коммутатора, потребляемый лавинной маршрутизацией клиентских запросов, называют загрузкой коммутатора.

В большинстве случаев применения службы БНС пропускная способность, используемая для запроса данных, составляет небольшую часть общей пропускной способности, необходимой для работы приложений клиент/сервер. Например, используемый процент пропускной способности порта 100-мегабитного концентратора при выполнении запроса GET для веб-страниц объемом 10 КБ при разных значениях нагрузки составляет менее 2% пропускной способности концентратора.

Лавинная маршрутизация в коммутаторе может быть не самым удачным решением для приложений со значительным объемом сетевых данных, направляемых в кластер (таких как загрузка файлов с FTP-серверов). Кроме того, такое решение может создавать проблемы в случае совместного использования коммутатора несколькими кластерами, так как при этом лавинная маршрутизация нескольких кластеров может значительно загрузить коммутатор. Наконец, если для подключения коммутатора к магистральному каналу используется более скоростной порт по сравнению с портами, к которым подключены узлы кластера, это может привести к чрезмерной загрузке коммутатора. Например, если для подключения магистрального канала используются гигабитные порты коммутатора, а для подключения узлов кластера — 100-мегабитные, загрузка коммутатора возрастает десятикратно. В приведенном примере при общей пропускной способности 500 Мб/с загрузка коммутатора повышается на 10%. В таких случаях использование службы БНС в многоадресном режиме и настройка виртуальных сетей в коммутаторе могут ограничить объем данных лавинной маршрутизации.

Рисунок 3 - Загрузка коммутатора при фильтрации пакетов службой БНС

Автор: Microsoft  •  Иcточник: Microsoft Russia  •  Опубликована: 16.11.2006
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.