Научная статья на тему 'Оптимизация балансировки нагрузки между серверными платформами веб-приложений'

Оптимизация балансировки нагрузки между серверными платформами веб-приложений Текст научной статьи по специальности «Строительство и архитектура»

CC BY
355
65
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-ПРИЛОЖЕНИЕ / ПРОИЗВОДИТЕЛЬНОСТЬ / МАСШТАБИРОВАНИЕ / ОБЛАЧНЫЕ СИСТЕМЫ / БАЛАНСИРОВКА НАГРУЗКИ / WEB APPLICATION / PERFORMANCE / SCALING / CLOUD SYSTEMS / LOAD BALANCING

Аннотация научной статьи по строительству и архитектуре, автор научной работы — Носков Владислав Юрьевич, Гой Егор Александрович, Пономарев Александр Владимирович, Костромин Алексей Вячеславович

В статье описывается разработанный алгоритм оптимального распределения нагрузки между разнородными по своей производительности системами при работе с одним распределенным веб-приложением

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по строительству и архитектуре , автор научной работы — Носков Владислав Юрьевич, Гой Егор Александрович, Пономарев Александр Владимирович, Костромин Алексей Вячеславович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Optimization of load balancing across server platforms OF WEB APPLICATIONS

This article describes the developed algorithm for optimal load distribution between heterogeneous systems in terms of performance when working with a distributed web application

Текст научной работы на тему «Оптимизация балансировки нагрузки между серверными платформами веб-приложений»

УДК 004.4

ОПТИМИЗАЦИЯ БАЛАНСИРОВКИ НАГРУЗКИ МЕЖДУ СЕРВЕРНЫМИ ПЛАТФОРМАМИ ВЕБ-ПРИЛОЖЕНИЙ

Носков Владислав Юрьевич

Гой Егор Александрович

Пономарев Александр Владимирович

Костромин Алексей Вячеславович Уральский федеральный университет, Екатеринбург, Россия \ynosko\Y7gmail. сот

В статье описывается разработанный алгоритм оптимального распределения нагрузки между разнородными по своей производительности системами при работе с одним распределенным веб-приложением

UDC 004.4

OPTIMIZATION OF LOAD BALANCING ACROSS SERVER PLATFORMS OF WEB APPLICATIONS

Noskov Vladislav Yurievich

Goy Egor Aleksandrovich

Ponomarev Aleksandr Vladimirovich

Kostromin Aleksey Vyacheslavovich

Ural Federal University, Yekaterinburg, Russia

[email protected]

This article describes the developed algorithm for optimal load distribution between heterogeneous systems in terms of performance when working with a distributed web application

Ключевые слова: ВЕБ-ПРИЛОЖЕНИЕ, Keywords: WEB APPLICATION,

ПРОИЗВОДИТЕЛЬНОСТЬ, PERFORMANCE, SCALING, CLOUD

МАСШТАБИРОВАНИЕ, ОБЛАЧНЫЕ SYSTEMS, LOAD BALANCING

СИСТЕМЫ, БАЛАНСИРОВКА НАГРУЗКИ

Широкое использование сервисов, предоставляемых с использованием веб-ориентированных систем (ВОС), требует построения производительных решений в части построения сервисных платформ. Количество посетителей online-магазинов, SaaS платформ, развлекательных и образовательных порталов, растет быстрыми темпами (согласно исследованию, проведенному в сентябре 2011 года Фондом «Общественное мнение» и Microsoft [1] рост рынка интернет торговли составил около 26%, рост услуг SaaS, согласно материалам CNews Analytics, составляет более 100% в годовом исчислении [2]). Постоянный рост нагрузки на ВОС без изменения аппаратной платформы, на которой запущено приложение, приводит к постепенному увеличению времени отклика системы и, впоследствии, к частичной деградации предоставляемого сервиса ВОС. Типовыми решениями проблемы ограниченной производительности является

создание многоуровневых ВОС (выделение различных аппаратных платформ для различных задач) а также переход к облачным вычислительным системам (ОВС), предполагающим использование распределенного «облака» вычислительных платформ, на которых одновременно запущен некий фрагмент или полная копия веб приложения. Распределенная нагрузка по множеству аппаратных платформ позволяет достигать высоких показателей по обрабатываемой нагрузке, масштабированию, отказоустойчивости.

Важной задачей при построении ОВС становятся внедрение в составе ОВС механизмов эффективного распределения атомарной нагрузки между аппаратными платформами, входящими в состав ОВС, контроль их функционирования, возможности динамического перераспределения нагрузки между платформами.

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

Моделирование поведения оборудования ЦОД

Основной критерий, который показывает оптимальность распределения нагрузки внутри ЦОД — загруженность СРи на вычислительных платформах одного уровня. Фактически — величина загрузки СРи в рабочем диапазоне (до 70-80%) прямо пропорциональна числу пользовательских запросов, которые обрабатывает серверная платформа. Таким образом, основная задача при

моделировании, корректно учесть коэффициент пропорциональности, обусловленный разницей в частоте работы CPU и количестве ядер CPU. Оценку этого коэффициента можно предварительно дать по документу Microsoft [3]. В рамках данного документа приведены количество машинных тактов, которые используются при выполнении различных действий с HTTP протоколом и возникающая разница в количестве тактов между однопроцессорной и двухпроцессорной системой при выполнении этих действий. Количество машинных тактов, в расчете на одного пользователя ВОС, сильно зависят от используемого ПО ВОС, архитектуры аппаратных средств и т.п., однако это не влияет на характер самой зависимости.

Используя приведенные цифры, можно вывести формулу (1), описывающую загрузку CPU в рабочем диапазоне (до 80%), как функцию, зависящую от числа пользовательских запросов (N).

(С ■ N) (1)

1ТО = к0С + кдо„ + -^

Где,

^ос^ос

- доля загрузки CPU, обусловленная постоянными процессами ОС (практически не зависит от числа обрабатываемых пользовательских запросов);

К к

^доп ^доп

- доля загрузки CPU, обусловленная дополнительными процессами на серверной платформе (не зависит от числа обрабатываемых пользовательских запросов, а зависит от запущенных доп. процессов);

СС

- количество циклов машинного времени требуемого для обработки одной пользовательской сессии (зависит только от логики работы ПО ВОС и является неизменным при увеличении числа пользователей);

FF

- тактовая частота работы процессора;

ММ

коэффициент использования нескольких ядер в многоядерных/многопроцессорных системах

Коэффициент использования многоядерных систем зависит, прежде всего, от возможности задачи к распараллеливанию. Предполагаем, что использование кода и средств ПО достаточно хорошо оптимизировано для распараллеливания на уровне ядер/процессов (до 80% запросов может быть распределено между ядрами/процессорами) и при увеличении числа ядер коэффициент использования составляет значения, приведенные в таблице 1 [4].

Таблица 1 - Коэффициент использования ядер процессора

Количество ядер/процессоров Коэффициент использования ядер

1 1

2 1,8

4 зд

Космос

Для моделирования, мы используем значения коэффициентов и

КдсЛоп С = 2 ■ 106С = 2 ■ 106

составляющие не более 1%. Коэффициенты для

С = 2 ■ 107 С = 2 ■ 107 серверов Front End и для серверов Middle End.

Для проверки адекватности и точности разработанной модели проведем расчёт загруженности CPU при различных условиях функционирования и различных ресурсах аппаратных платформ.

Рассчитаем загрузку процессоров при равномерном распределении нагрузки между серверами для трёх серверов обладающих различными аппаратными ресурсами в ситуациях, когда эти сервера выполняют функцию Front или Middle End. Расчёт проведем для различного числа пользователей (1000 и 4000).

Результаты вычисления тестовых задач поведения оборудования ЦОД

При данных расчетах используем следующие сумму коэффициентов

Кос>Кдоп К0С,КАОП С = 2 ■ 106С = 2 ■ 106

- 5%. Коэффициенты для серверов Front

С = 2- 107С = 2 - 107 End и для серверов Middle End.

Результаты проведённых расчётов моделирования поведения оборудования

ЦОД при различном числе пользователей и равномерном распределении

нагрузки приведено в таблице 2.

Таблица 2 - Моделирование при равномерном распределении нагрузки

Аппаратная платформа, кол-во ядер/частота Кол-во пользователей Загрузка CPU FrontEnd, % Загрузка CPU MiddleEnd, %

1/1,2 ■ 109 1000 11,7 26,7

1/2,4 - 10э 10,8 18,3

2/2,0 ■ 105 10,6 15,6

1/1,2 ■: 109 4000 16,7 76,7

1/2,4- 105 13,3 43,3

2/2,0 ■ 105 12,2 32,2

Проведённые расчёты показывают, что модель адекватно отрабатывает различие в загрузке СРи при различиях в аппаратных средствах серверных платформ и их месте в структуре веб приложения, а также позволяет выполнить моделирование с учетом изменения числа пользователей системы.

Разработка алгоритма оптимального распределения нагрузки

Задачу оптимального распределения вычислительной нагрузки на концептуальном уровне можно сравнить с задачей наполнения поилок — нескольких бочек с разными геометрическими характеристиками водой, которая поступает через трубу с вентилями. Один раз в секунду дно бочек открывается, и вся вода из них попадает в поилки. Вода же, которая переливается через края бочек, уходит в землю бесцельно. Для исключения перелива необходимо выбрать такие регулирующие значения вентилей, чтобы вода в бочках держалась

на одинаковом уровне. При увеличении потока воды уровень воды во всех бочках на момент сброса должен увеличиться на одинаковую величину, чтобы не допустить перелива воды ни в одной из бочек (необработанные запросы). Именно это позволит достигнуть максимального объема полезно употребленной воды (максимальное значение числа обработанных операций в многоузловых системах). Данный процесс можно представить на графике зависимости числа обработанных запросов от числа поступивтттих для системы, состоящей из двух узлов А и Б. Производительность системы Б в 2 раза выше, чем системы А. При оптимальном распределении нагрузки — 1/3 запросов на А и 2/3 запросов на Б (Рисунок 1, а) — величина предельного суммарного числа обработанных запросов, при котором не происходит сброс, вдвое выше, чем для варианта, представленного на рисунке 1, б (1/3 запросов приходится на Б и 2/3 запросов на А). Причина — быстрое достижение предела возможностей узла А и деградация производительности всей системы.

/V обраб. N обраб.

Рисунок 1. Предельная производительность системы Таким образом, одна из важнейших задач балансировки — определение корректных и оптимальных пропорций распределения поступающих запросов и их последующая динамическая корректировка при изменении условий функционирования системы (изменение числа узлов, состава установленного и запущенных приложений, модернизация аппаратной платформы отдельных узлов и т. д.). Оптимальные пропорции в нашем случае — это такое соотношение

числа обработанных запросов различными узлами, при котором уровни загрузки этих узлов приблизительно равны.

Решить подобную задачу можно путём введения относительного рейтинга аппаратных платформ, на которых выполняются приложения. Относительный

рейтинг, может быть рассчитан исходя из оценки доли запросов ( ),

которые были отправлены на аппаратную платформу и загрузки СРи ( ),

которая возникает в результате обработки данной доли запросов. По своему смыслу, относительный рейтинг указывает на долю запросов, которые обрабатываются аппаратной платформой в расчёте на один процент загрузки СРи. Формула (2) позволяет вычислить относительный рейтинг.

£> Ц <2>

1 £>*£ГМ

где, Я,Я

1 - относительный рейтинг аппаратной платформы;

- количество пользователей обслуживаемых сервером;

ЬМ

- значение загрузки СРи на аппаратной платформе

тт

общее количество аппаратных платформ с запущенным

приложением.

Обладая сведениями об относительном рейтинге, возможно рассчитать такие значения доли запросов, отправляемых на каждую платформу, при которых значения загрузки СРи различных аппаратных платформ будут приблизительно равны. Т.е. для значений загрузки СРи будет выполняться

Ь1 = Ь2 =. ■ ■ 1>цЬг = Ь2 =...Ьп

равенство

Это достигается при соблюдении равенства приведённого в формуле (3):

А/1 _ Щ К (3)

■■■

где,

- относительный рейтинг аппаратной платформы;

вд

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- количество пользователей обслуживаемых сервером;

тт

общее количество аппаратных платформ с запущенным

приложением.

Я, Я,-

Таким образом, при предварительно найденных значениях рейтинга ( ),

становится возможным рассчитать необходимые пропорции по оптимальному распределению нагрузки. Для выполнения этого действия необходимо нормализовать полученные значения относительных рейтингов (нормализовать относительно суммарного значения 100% (4) или единицы, в зависимости от методов задания конфигурации балансирующего устройства).

п„р„ 100* Д, (4)

=^г

Где

£5 НО рМ £|НОрМ К1

- доля/процент от запросов, которые требуется отправить на аппаратную платформу;

- относительный рейтинг аппаратной платформы, рассчитанный на предыдущем шаге.

Для проверки адекватности и точности алгоритма балансировки проведем

моделирование функционирования распределения нагрузки внутри ЦОД для

следующей архитектуры (Рисунок 2).

МЕ1 МЕ2 МЕЗ МЕ4 МЕ5 МЕ6 МЕ7 МЕ8

(1/1,2 ГГц) (II 1,2 ГГц) (1/2,4 ГГц) (1/2,4ГГц) (2/2,0ГГц) (2/2,0ГГц) Щ0,9ГГц) (4/1,2 ГГц)

Рисунок 2. Схема ЦОД для моделирования

В таблице 3 представлены сводные характеристики аппаратных средств

ЦОД.

Таблица 3 - Сводные характеристики аппаратных ресурсов ЦОД

Сервер Кол-во ядер/частота Уровень функционирования

МЕ1 1/1,2 ■ 109 Middle End

МЕ2 1/1,2 ■ Ю9

МЕЗ 1/2,4 ■ 109

МЕ4 1/2,4 ■ 109

МЕ5 2/2,0 ■ Ю9

МЕ6 2/2,0 ■ 109

Сервер Кол-во ядер/частота Уровень функционирования

МЕ7 1/0,9 ■ 109

МЕ8 4/1,2 ■ 109

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

1)Определим максимальное количество пользователей, которые будут обслуживаться без потерь пакетов в ЦОД приведенной архитектуры и используемых аппаратных средств, в условиях равномерного распределения нагрузки и оптимизированного в соответствии с разработанным алгоритмом;

2)Проведем расчет вычисленных пропорций перераспределения нагрузки и определим максимальное количество пользователей, которые могут быть обслужены без потерь пакетов в условиях выхода из строя одной из аппаратных платформ ОВС;

3)Определим загрузку аппаратных ресурсов ВОС в условиях равномерного распределения нагрузки и оптимизированного при одинаковой пользовательской нагрузке.

Проведем расчет максимального количества пользователей, при котором загрузка СРи любой платформы не превышает 80% (находится в рабочем диапазоне) в условиях равномерного распределения нагрузки. Используем сумму

Космос Щоп^доп коэффициентов и - 1%.

Достигнутый при моделировании при подобных начальных условиях и равномерном распределении запросов между платформами результат — около 28451 активных пользователей. При этом расчетная результирующая загрузка аппаратных средств ВОС представлена в таблице 4.

Таблица 4 - Моделирование при равномерном распределении нагрузки

Сервер кол-во ядер/частота Доля от общего числа запросов Количество пользователей сри, %

МЕ1 1/1,2 ■ 10? 1/8 3556 60,25

Сервер кол-во ядер/частота Доля от общего числа запросов Количество пользователей сри, %

МЕ2 1/1,2 ■ 109 1/8 3556 60,25

МЕЗ 1/2,4- 109 1/8 3556 30,63

МЕ4 1/2,4- 109 1/8 3556 30,63

МЕ5 2/2,0 ■ 109 1/8 3556 20,75

МЕ6 2/2,0 ■ 109 1/8 3556 20,75

МЕ7 1/0,9 ■ 109 1/8 3556 80

МЕ7 4/1,2 ■ 109 1/8 3556 20,11

Итого 28451

Используя разработанный алгоритм, вычисляем оптимальные пропорции перераспределения нагрузки между серверами М1ск11е-Еп<1 После этого, производим предельный расчет максимального числа пользователей системы, при котором загрузка СРи любой платформы не превышает 80%.

Достигнутый при оптимальном распределении запросов между платформами результат — около 73 141 активных пользователей на тех же аппаратных ресурсах. Вычисленная результирующая загрузка аппаратных средств ВОС представлена в таблице 5.

Таблица 5 - Моделирование при оптимизированном распределении

Сервер кол-во ядер/частота Доля от общего числа запросов Количество пользователей сри, %

МЕ1 1/1,2 ■ 109 0,065 4722 79,68

МЕ2 1/1,2 ■ 109 0,065 4722 79,68

МЕЗ 1/2,4' 109 0,127 9289 78,4

МЕ4 1/2,4- 109 0,127 9289 78,4

МЕ5 2/2,0 ■ 109 0,187 13710 77,15

МЕ6 2/2,0 ■ 109 0,187 13710 77,15

МЕ7 1/0,9 ■ 109 0,049 3556 80,01

МЕ8 4/1,2 ■ 109 0,19 14144 77,03

Итого 73141

Используя разработанный алгоритм, проведем моделирование ситуации и вычисления пропорции перераспределения нагрузки между серверами МісІсПе-ЕпсІ в условиях отказа одного из серверов (МЕ4). После этого, производим расчет максимального числа пользователей системы, при котором загрузка СРи любой платформы не превышает 80%.

Достигнутый при оптимальном распределении запросов между платформами результат — около 63 850 активных пользователей на тех же аппаратных ресурсах. Вычисленная результирующая загрузка аппаратных средств ВОС представлена в таблице 6.

Таблица 6 - Моделирование при аварии в одном из ЦОД

Сервер кол-во ядер/частота Доля от общего числа запросов Количество пользователей сри, %

МЕ1 1/1,2 9 109 0,074 4721 79,68

МЕ2 1/1,2 ■ 109 0,074 4721 79,68

МЕЗ 1/2,4- 109 0,145 9289 78,39

МЕ4 1/2,4- 109 0 0 0

МЕ5 2/2,0 ■ 109 0,215 13709 77,15

МЕ6 2/2,0 ■ 109 0,215 13709 77,15

МЕ7 1/0,9 109 0,056 3556 80,01

МЕ8 4/1,2 9 109 0,22 14144 77,03

Итого 63850

Анализ полученных результатов показывает, что разработанный алгоритм перераспределил пропорции таким образом, чтобы сохранить равномерную

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

Теперь проведем моделирование загрузки СРи аппаратных средств при равной пользовательской нагрузке (20 тыс. пользователей) в условиях равномерного и оптимизированного распределения нагрузки. В таблице 7 представлены результаты вычислений.

Таблица 7 - Моделирование для 20 тыс. пользователей

Имя кол-во ядер/частота Вариант равномерного распределения Вариант оптимизированного распределения

Сессий сри, % Сессий сри, %

МЕ1 1/1,2 ■ 109 2500 42,6 1303 22,7

МЕ2 1/1,2 ■ 109 2500 42,6 1303 22,7

МЕЗ 1/2,4 - 109 2500 21,8 2546 22,2

МЕ4 1/2,4 - 109 2500 21,8 2546 22,2

МЕ5 2/2,0 ■ 109 2500 14,9 3734 21,7

МЕ6 2/2,0 ■ 109 2500 14,9 3734 21,7

МЕ7 1/0,9 Ю9 2500 56,5 983 22,8

МЕ8 4/1,2 ■ 109 2500 14,4 3850 21,7

Средняя загрузка, % 28,7 22,2

Проведенное моделирование показывает, что разработанный алгоритм обеспечивает решение задачи балансировки нагрузки в пределах ЦОД со следующими сводными характеристиками:

1)загрузка процессоров всех аппаратных платформ находится на максимально низком уровне при заданной величине нагрузки на ВОС для всех

аппаратных платформ образующих ВОС (28,7 при равномерном распределении и 22,2 при использовании алгоритма оптимальной балансировки);

2)разброс прогнозируемой загрузки процессоров не превысил 4% в пределах одного архитектурного уровня одного ЦОД (77% - 80%);

3)для аппаратных платформ находящихся в аварийном состоянии величина направляемой на них нагрузки составляет 0% от общей нагрузки (доля запросов на МЕ4 выставлена в 0%).

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

Работа поддерживается Министерством образования и науки Российской Федерации, ГК 14.514.11.4043.

Список литературы:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1 Рынок e-commerce в России [Электронный ресурс] //Microsoft: [web-сайт] . - USA, 2011. - Режим доступа: http://www.microsoft.com/ru-ru/cpe/ecommerce.aspx. - 24.10.2012.

2 Мария Попова, Любовь Байдалина Рынок SaaS в России разгоняется и нагревается

[Электронный ресурс] //CNews Analytics: [web-сайт] - М, 2011. - Режим доступа:

http://www.cnews.ru/reviews/free/saas/articles/articlesl.shtml. - 24.10.2012

3 Best Practices for Performance in ISA Server 2004 [Electronic resource] //Microsoft:

[web-сайт] - USA, 2012. - Mode Access:

http://technet.microsoft.eom/library/cc302518.aspx#PlanningISAServerCapacity. - 26.03.2013.

4 Сергей Пахомов Эра многоядерных энергоэффективных процессоров [Электронный

ресурс] //КомпьютерПресс: [web-сайт] - М, 2006. - Режим доступа:

http://www.compress.ru/article.aspx?id=16962&iid=786. - 26.03.2013.

Referenses:

1 Rynok e-commerce v Rossii [Electronic resource] //Microsoft: [website], - USA, 2011. - Mode Access: http://www.microsoft.com/ru-ru/cpe/ecommerce.aspx. - 24.10.2012

2 Marija Popova, Ljubov' Bajdalina Rynok SaaS v Rossii razgonjaetsja i nagrevaetsja [Electronic resource] //CNews Analytics: [website] - M, 2011. - Mode Access:

http://www.cnews.ru/reviews/free/saas/articles/articlesl.shtml. - 24.10.2012

3 Best Practices for Performance in ISA Server 2004 [Electronic resource] //Microsoft:

[website] - USA, 2012. - Mode Access:

http://technet.microsoft.eom/library/cc302518.aspx#PlanningISAServerCapacity. - 26.03.2013

4 Sergej Pahomov Jera mnogojademyh jenergojeffektivnyh processorov [Electronic resource] // Komp'juterPress: [website]. - M, 2006. - Mode Access: http://www.compress.ru/article.aspx?id=16962&iid=786. - 26.03.2013

i Надоели баннеры? Вы всегда можете отключить рекламу.