Научная статья на тему 'Задача балансировки нагрузки на серверы'

Задача балансировки нагрузки на серверы Текст научной статьи по специальности «Математика»

CC BY
510
61
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЛАНСИРОВКА ЗАГРУЗКИ / NP-ТРУДНЫЕ ЗАДАЧИ / ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ / ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ / LOAD BALANCING / NP-HARD PROBLEMS / INTEGER PROGRAMMING / APPROXIMATION ALGORITHMS

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

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

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

THE SERVERS LOAD BALANCING PROBLEM

The paper is devoted to a new load balancing problem originated from the cloud computing and optimal hosting for the web applications and user’s contents. We present a mixed integer linear programming formulation and show that it is NP-hard problem. We design an approximation algorithm with a posterior bound for the deviation from the optimum. Computational results are conducted with number of servers up to 20.

Текст научной работы на тему «Задача балансировки нагрузки на серверы»

УДК 519.8

Ю. А. Кочетов, Н. А. Кочетова

Институт математики им. С. Л. Соболева СО РАН пр. Акад. Коптюга, 4, Новосибирск, 630090, Россия

Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия

E-mail: [email protected]; [email protected]

ЗАДАЧА БАЛАНСИРОВКИ НАГРУЗКИ НА СЕРВЕРЫ *

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

Ключевые слова: балансировка загрузки, NP-трудные задачи, целочисленное программирование, приближенные алгоритмы.

Введение

Рассмотрим следующую прикладную задачу. Имеется набор серверов, на каждом из которых размещены диски (точнее, их образы). На дисках хранятся интернет-сайты с разнородной информацией. Пользователи посещают сайты, что создает определенную нагрузку на серверы. Эта нагрузка меняется со временем и характеризуется несколькими параметрами - CPU, RAM и др. По каждому диску известна активность пользователей в течение планового периода. Эта активность позволяет определить нагрузку на каждый сервер в каждый момент времени по каждому параметру. Время предполагается дискретным, т. е. измерение нагрузки производится, например, каждый час (полчаса, минуту). Если нагрузка по каждому параметру не превосходит заданного порога, то сервер находится в рабочем режиме. В противном случае сервер работает с перегрузкой, что нежелательно, так как возникают задержки на запросы пользователей. Чтобы избежать перегрузки, диски можно перемещать с одного сервера на другой. Такое перемещение требует определенных вычислительных затрат. Будем называть их накладными расходами. Предполагается, что для каждого диска известны накладные расходы по каждому параметру при его изъятии с сервера и подключении к любому другому серверу. Начальное распределение дисков по серверам считается известным. Задача состоит в том, чтобы перераспределить диски по серверам и достичь минимальной суммарной перегрузки на всем плановом периоде при ограничениях на накладные расходы по каждому серверу.

Решение этой задачи потребовалось в НИОКР, выполняемой Новосибирским государственным университетом по заказу Минобрнауки РФ (договор № 02.G25.31.0054).

* Работа выполнена при финансовой поддержке Минобрнауки РФ (договор № 02.G25.31.0054).

Кочетов Ю. А., Кочетова Н. А. Задача балансировки нагрузки на серверы // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2013. Т. 11, вып. 4. С. 71-76.

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2013. Том 11, выпуск 4 © Ю. А. Кочетов, Н. А. Кочетова, 2013

Математическая модель Введем следующие обозначения: S - множество серверов; D - множество дисков; T - плановый период;

R - множество характеристик нагрузки (CPU, RAM, ...); cdrt - нагрузка диска d в момент t по характеристике r;

Csr - пороговая нагрузка сервера s по характеристике r;

x° - начальное распределение дисков по серверам;

bWdr (besdr) - накладные расходы по характеристике r на вставку (изъятие) диска d в сервер s;

Bjf (Besr ) - предельно допустимые накладные расходы по характеристике r на вставку

(изъятие) дисков в сервер s. Переменные задачи:

[1, если диск d ставится на сервер s, [О в противном случае, ystr - перегрузка на сервере s в момент времени t по характеристике r.

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

min ZZZ yt

у sir

seS teT reR

(1)

при ограничениях

ystr — Z cdrtxds - csr для всех s e S, t e T, r e R;

d eD

Z xds = 1 для всех d e D;

seS

Z bsdrxds(1 - x!) ^ Bw для всех s e S, r e R;

d eD

Z bd(1 - xcs,)xl ^ К для всех s e S, r e R;

d eD

(2)

(3)

(4)

(5)

yitr - 0, xds e {О, 1} для всех d e D, s e S, t e T, r e R. (6)

Целевая функция (1) задает суммарную перегрузку серверов на всем плановом периоде. Неравенство (2) позволяет определить эту перегрузку для каждого сервера в каждый момент времени по каждой характеристике. Равенство (3) гарантирует в точности один сервер для каждого диска. Неравенства (4) и (5) ограничивают накладные расходы по каждому серверу и каждой характеристике при изъятии и вставке дисков.

Представление задачи в терминах частично-целочисленного программирования позволяет использовать для ее решения коммерческое программное обеспечение, например, IBM ILOG CPLEX GUROBI 2 и др. К сожалению, наличие большого разрыва целочисленности при переходе к непрерывным переменным xds — 0 не дает возможности найти точное решение на примерах даже средней размерности. При | S |= 20, | D |= 200, | T |= 150, | R |= 2 расчеты на современном компьютере могут занимать более суток без гарантии найти точное решение. Следующее утверждение отчасти объясняет причины этого и подталкивает к разработке специализированных методов. Покажем, что задача (1)-(6) является NP-трудной,

1 http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/

2 http://www.gurobi.com/

даже при | Т |= 1, | Я |= 1, | 5 |= 2 и нулевых накладных расходах. Рассмотрим следующую полную задачу о разбиении. Заданы множество А и целые положительные размеры м>(а) всех элементов а е А. Вопрос: существует ли такое подмножество А с А, что ^ ^(а) = ^ ^(а) ? Приведем сведение этой задачи к задаче (1)-(6) при | Т |= 1, | Я |= 1,

аеА' аеА\А'

| 5 |= 2 и нулевых накладных расходах. Для этого по исходным данным задачи разбиения построим исходные данные задачи (1)-(6). Пусть | В |=| А | и каждому элементу а е А соответствует диск й(а). Положим сйн = ^(а) для й = й(а) и =1 ^ ^(а), 5 = 1, 2. Тогда реше-

2 аеА

ние задачи (1)-(6) с нулевой перегрузкой соответствует ответу «да» в задаче разбиения и наоборот.

Приближенный метод. Рассмотрим задачу линейного программирования, которая получается из задачи (1)-(6) заменой целочисленных переменных на непрерывные переменные > 0. Такая задача полиномиально разрешима. Ее точное решение дает нижнюю оценку оптимума для исходной задачи (1)-(6), что позволяет получить апостериорную оценку точности приближенных алгоритмов.

Пусть х^ - оптимальное решение такой задачи. Будем использовать его для приближенного решения исходной задачи. Пусть параметр кх показывает число дисков, уже зафиксированных на сервере 5, а вспомогательная 0-1 матрица } показывает их распределение по серверам. На каждом шаге алгоритма решается задача линейного программирования с дополнительным ограничением хсЬ > гсЬ для всех й е В, 5 е 5 . По оптимальному решению х*5 этой задачи будем фиксировать на каждом сервере по одному диску, выбирая диск с наибольшим значением хсЬ. При каждой такой фиксации проверяются ограничения (4)-(5). Если они не нарушаются, то соответствующая величина гсЬ полагается равной 1. В противном случае переходим к следующему серверу. Таким образом, размерность задачи сокращается до тех пор, пока оставшаяся подзадача не станет достаточно малой и ее можно будет решить точно методом ветвей и границ (СРЬБХ). Общая схема алгоритма может быть представлена следующим образом.

0. Полагаем : = 0 , : = 0 для всех й е В, 5 е .

1. Решаем задачу линейного программирования с дополнительным ограничением

хсЬ > 2сЬ для всех й е В, 5 е 5.

2. Для каждого 5 е 5 находим диск й е В с максимальным значением х*5. Если х*5 > 0,5 и требование гсЬ = 1 не нарушает условий (4) и (5), то полагаем гсЬ: = 1, кх: = кх +1.

3. Если кх < ктах и число зафиксированных дисков возросло, то возвращаемся на шаг 1.

4. Решаем исходную задачу (1)-(6) с дополнительным ограничением > гсЬ для всех

й е В, 5 е 5.

На шаге 2 неравенство х* > 0,5 гарантирует, что один диск не будет установлен на несколько серверов одновременно и условие (3) будет выполняться. На шаге 4 требуется решение исходной задачи (1)-(6) с фиксацией части дисков, что при малом значении параметра ктах может требовать больших вычислительных усилий. Тем не менее даже при остановке расчетов по времени, наилучшее найденное решение методом ветвей и границ может давать хорошее приближение к оптимуму в исходной задаче.

Экспериментальные исследования. Для проведения численных экспериментов рассматривался следующий класс тестовых примеров: | 51= 20, | В |= 200, | Т |= 150, | Я |= 2. Начальное

распределение дисков по серверам, величины х° е {0, 1} порождались случайным образом

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

приписывалось значение средней нагрузки сл, й е В. Она бралась из интервала [50, 100] с равномерным распределением, а затем полагалось:

• Сг — Сй + цг для всех й е В, г е Я, * е Т;

• Кг = сл для всех 5е^ йеD, геЯ;

сй + для всех 5 е S, й е В, г е Я, где величины ц^ е [-20, 20], , 0!хГг е [-3, 3] также выбирались независимо друг от друга с равномерным распределением из заданных интервалов. Эксперименты проводились при различных значениях пороговой нагрузки е [600, 850] и Б™г — Б™г — 50, 150, £тах — 7. Результаты расчетов представлены в таблице:

csr tLP Flp #1 tILP F 1 ILP

Bw = Bw = 150 sr sr

850 2 ' ' 0 185 8 ' ' 0

840 2 ' ' 0 185 21' ' 0

830 2 ' ' 0 182 11' ' 0

820 2 ' ' 0 177 50 ' (остан.) 4

810 2 ' ' 0 157 35' 0

800 2 ' ' 0 146 50 ' (остан.) 1370

750 3' 20 ' ' 0 40 - —

700 12 '14 ' ' 87 700 40 - —

650 3'02 ' ' 382 399 80 50 ' (остан.) 469 294

600 1'04' ' 682 399 83 50 ' (остан.) 761 107

BW = BW = 50

850 2 ' ' 0 146 6 ' ' 0

840 2 ' ' 0 143 7 ' ' 0

830 2 ' ' 0 145 17 ' ' 0

820 2 ' ' 0 136 1 '10 ' ' 0

810 2 ' ' 0 143 50 ' (остан.) 1834

800 2 ' ' 0 123 50 ' (остан.) 2480

750 3' 18 ' ' 0 40 — —

700 7 '3' ' 96 911 40 50 ' (остан.) 188 306

650 2 '40' ' 382 399 70 10 '7 ' ' 407 792

600 58 ' ' 682 399 98 1' 25' ' 702 039

При пороговой нагрузке 850 задача легко решается точно. Линейное программирование требует всего две секунды расчетов на PC Pentium Core 2Duo, CPU 2.66 GHz, RAM 2 GB (столбец tip). Целочисленное линейное программирование занимает восемь секунд (столбец tup). Перегрузка отсутствует в оптимальном решении как линейного программирования (столбец FiP), так и целочисленного линейного программирования (столбец FIiP). Интересно отметить, что линейное программирование дает много единиц в оптимальном решении (столбец #1). Всего 15 дисков оказались «размазанными» по серверам (x*s i {0, 1}).

Значение ~csr = 600 также оказалось простым для расчетов, хотя оно соответствует большой перегрузке и требует значительно большего времени для расчетов. Линейное программирование потребовало чуть больше одной минуты, а целочисленное линейное программирование было остановлено через 50 минут расчетов. Однако полученное решение не сильно отличалось от оптимума, относительная погрешность не превысила 12 %. Заметим, что в случае BW = BJr = 150 ограничения (4), (5) фактически оказываются несущественными, что, конечно, упрощает задачу (см. таблицу). Тем не менее она не становится тривиальной.

Значения cr = 700, 750 соответствуют наиболее трудному случаю. Линейное программирование требует значительно большее время, а целочисленное линейное программирование оказывается задачей слишком большой размерности. Алгоритм не может сократить размерность задачи, зафиксировав часть дисков, так как для подавляющего числа пар (d, s) величина x* < 0, 5. В итоге задача на шаге 4 оказывается слишком тяжелой и расчеты в течение 50 минут не приводят к практически значимым результатам. Для этих значений пороговой нагрузки требуются новые подходы, например основанные на методах локального поиска и метаэвристиках [1].

В таблице представлены результаты расчетов для Bw = Bw = 50. Это более трудные примеры, они требуют больше времени, но значения csr = 850, 600 тем не менее решаются сравнительно легко. Значения = 700, 750, как и прежде, наиболее трудны для данного подхода.

Заключение

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

1. Разработка эвристических методов и, в частности, метаэвристик, к которым относятся генетические алгоритмы [2; 3], локальный поиск с чередующимися окрестностями [4], имитация отжига [5], поиск с запретами [6] и др. Эти методы хорошо зарекомендовали себя при решении многих NP-трудных задач. Они не опираются на линейное программирование, их точность не зависит от разрыва целочисленности. По сути, это общие схемы для поиска глобального оптимума. Их эффективность во многом зависит от того, насколько удачно разработчики воспользовались спецификой решаемой задачи и сумели найти подходящие структуры данных для повышения агрессивности поиска.

2. Разработка точных методов, среди которых следует выделить как классические методы ветвей и границ, динамического программирования, методы генерации переменных и ограничений [7], так и новые гибридные схемы, сочетающие в себе классические методы и мета-эвристики [8; 9]. Особый интерес здесь представляют точные методы, например, метод локальных ветвлений (local branching), где поиск наилучшего решения в окрестности осуществляется методами математического программирования.

3. Вычисление нижних оценок оптимума, получаемых как априорными, так и апостериорными методами [10; 11]. С теоретической точки зрения здесь любопытно получить границы апроксимируемости рассматриваемой задачи, если такие существуют, или попытаться разработать апроксимационные схемы. Они позволяют получать решения со сколь угодно малой относительной погрешностью в при трудоемкости алгоритмов, полиномиально зависящей от величины 1/в.

В данной работе сделан только первый шаг в разработке таких методов.

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

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

1. Кочетов Ю. А. Методы локального поиска для дискретных задач размещения. Модели и алгоритмы. Saarbrucken: Lambert Academic Publishing, 2011. 259 c.

2. Plyasunov A. V., Panin A. A. The Pricing Problem. Part 1: Exact and Approximate Algorithms // Journal of Applied and Industrial Mathematics. 2013. Vol. 7. Is. 2. P. 241-251.

3. Kochetov Yu. A., Plyasunov A. V. Genetic Local Search for the Graph Partitioning Problem under Cardinality Constraints // Computational Mathematics and Mathematical Physics. 2012. Vol. 52. No. 1. P. 157-167.

4. Davydov I., Kochetov Yu., Carrizosa E. VNS Heuristic for the (r[p)-Centroid Problem on the Plane // Electronic Notes in Discrete Mathematics. 2012. Vol. 39. P. 5-12.

5. Diakova Z., Kochetov Yu. A Double VNS Heuristic for the Facility Location and Pricing Problem // Electronic Notes in Discrete Mathematics. 2012. Vol. 39. P. 29-34.

6. Давыдов И. А. Локальный поиск с запретами для дискретной задачи о ^[^-центроиде // Дискрет. анализ и исслед. операций. 2012. Т. 19, № 2. С. 19-40.

7. Alekseeva E., Kochetova N., Kochetov Yu., Plyasunov A. Heuristic and Exact Methods for the Discrete (r[p)-Centroid Problem // Lecture Notes in Computer Science. 2010. Vol. 6022. P. 11-22.

8. Kononova P. A., Kochetov Yu. A. The Variable Neighborhood Search for the two Machine Flow Shop Problem with a Passive Prefetch // Journal of Applied and Industrial Mathematics. 2013. Vol. 7. Is. 1. P. 54-67.

9. Береснев В. Л., Гончаров Е. Н., Мельников А. А. Локальный поиск по обобщенной окрестности для задачи оптимизации псевдобулевых функций // Дискрет. анализ и исслед. операций. 2011. Т. 18, № 4. С. 3-16.

10. Vasil'ev I. L., Klimentova K. B., Kochetov Yu. A. New Lower Bounds for the Facility Location Problem with Clients' Preferences // Computational Mathematics and Mathematical Physics. 2009. Vol. 49. №. 6. P. 1010-1020.

11. Kochetov Yu. A. Computational Bounds of Local Search in Combinatorial Optimization // Computational Mathematics and Mathematical Physics. 2008. Vol. 48. №. 5. P. 788-807.

Материал поступил в редколлегию 05.11.2013

Yu. A. Kochetov, N. A. Kochetova

THE SERVERS LOAD BALANCING PROBLEM

The paper is devoted to a new load balancing problem originated from the cloud computing and optimal hosting for the web applications and user's contents. We present a mixed integer linear programming formulation and show that it is NP-hard problem. We design an approximation algorithm with a posterior bound for the deviation from the optimum. Computational results are conducted with number of servers up to 20.

Keywords: Load balancing, NP-hard problems, integer programming, approximation algorithms.

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