Модель динамического распределения ресурсов
Автор: Матвеев Герман Анатольевич, Трушкова Екатерина Александровна
Журнал: Вестник Бурятского государственного университета. Философия @vestnik-bsu
Рубрика: Математическое моделирование
Статья в выпуске: 9, 2011 года.
Бесплатный доступ
В статье описана математическая модель и метод динамического распределения ограниченных ресурсов для системы компьютерных приложений в совокупности, который учитывает потребности и приоритеты каждого из приложений при изменяющейся пользовательской нагрузке на них. Модель построена с использованием математической теории оптимального управления, при этом в качестве управления рассматривается количество ресурсов, выделяемых каждому компьютерному приложению.
Распределение ресурсов, система компьютерных приложений, оптимальное управление
Короткий адрес: https://sciup.org/148180530
IDR: 148180530
Текст научной статьи Модель динамического распределения ресурсов
Рассматривается задача автоматического управления ограниченными аппаратными ресурсами c учетом ценности выделенных компьютерному приложению ресурсов (например, количества виртуальных машин, обеспечивающих работу приложения; объёма оперативной памяти и процессорного времени, предоставляемых виртуальным машинам или отдельным процессам) при текущей пользовательской нагрузке [1, 2]. Это позволит оптимально использовать ресурсы в процессе эксплуатации системы приложений, а именно, динамически добавлять или убирать количество любого ресурса во время работы с учетом потребностей и приоритетов каждого приложения системы и изменения пользовательской нагрузки на каждое приложение.
1. Постановка задачи
Построим математическую модель рассматриваемой задачи для системы, состоящей из n приложений, использующих один первичный ресурс и m различных категорий вторичных (зависимых от первичного) ресурсов.
Пусть V ( t ), i = 1, . , n - количество первичного ресурса, обеспечивающего работу приложения i , в момент времени t . Обозначим через r i ( t ), i = 1, . , n , j = 1, . , m - количество ресурса j , выделенного приложению i в момент времени t . Ограничения на использование ресурсов записываются в виде:
v ( t ) e V ( t ), r i ( t ) e R ( t,V ( t ) ) , i = 1, _ , n, (1)
где V ( t ) , Ri ( t , vi ) – некоторые компактные множества.
Предполагается, что каждое компьютерное приложение имеет индивидуальный набор k i характеристик, которые однозначно описывают его текущее состояние с точки зрения пользователя (например, время отклика приложения, количество сетевых ошибок). Характеристика зависит от количества первичного ресурса, обеспечивающего работу приложения, объема вторичных ресурсов, предоставленных приложению и оказываемой на приложение с течением времени неуправляемой пользовательской нагрузки L (t), i = 1, ^, n . При этом характеристики могут быть составлены либо на испытательном стенде до запуска приложения в эксплуатацию, либо непосредственно в процессе работы приложения – в табличном виде. Обозначим через pi = pi (vi (t), ri 1(t), ri2(t),..., rim (t), L (t)), i = 1, ^, n, k = 1, ^, k1 - характеристику k приложения i , через pɶik (t) – целевой уровень соответствующей характеристики (желаемое значение характеристики, ниже которого она не должна опускаться во время эксплуатации компьютерного приложения). С помощью функций ki
^ ( t ) = Е “ ik p i ( v i ( t ), r i1 ( t ), ™ , r im ( t ), L ( t ) )
k = 1
можно получить некоторую суммарную оценку характеристик каждого из приложений в момент времени t . Здесь через a ik обозначены весовые коэффициенты, выбираемые согласно значимости каждой характеристики приложения. Будем называть функции t r i ( t ) уровнями сервиса приложений.
Задача состоит в поддержании значения уровня сервиса (2) не ниже некоторого целевого уровня (поддержание каждой характеристики не ниже ее целевого уровня) в моменты времени T = {t0,t0 + h, ™,t0 + qh = t1}. Данная задача равносильна минимизации отклонения уровня сервиса ki q
V ' = Е a ik Е max { 0, Р ik ( 1 0 + th ) - P i ( v i ( 1 0 + th ), r i 1 ( 1 0 + th ), ™ , r im ( 1 0 + th ), L i ( t 0 + th ) ) } k = 1 t = 0
для системы приложений в совокупности с учетом приоритета каждого из приложений. Обозначим через 5‘ + максимум 5* при всех допустимых значениях ресурсов (минимум R , очевидно, равен нулю).
Замечание. Для задачи поддержания характеристики не выше ее целевого уровня на T отклонение можно записать в виде
Е max { 0, - pk ( 1 0 + th ) + p k ( v i ( 1 0 + th ), r i 1 ( 1 0 + th ), ™ , r im ( 1 0 + th ), L ( 1 0 + th ) ) } ; t = 0
для задачи поддержания положительной характеристики как можно ближе к нулю на T отклонение можно записать так:
q
Е P i ( v ( 1 0 + th ), r i 1 ( 1 0 + th ), ™ , r im ( 1 0 + th ), L ( 1 0 + th ) ) .
t = 0
Тогда исходную задачу динамического распределения ресурсов можно поставить в виде дискретной задачи оптимального управления следующего вида:
ki
У (t + h) = yi (t) + Е «ik max{0, pik (t) - pk (vi (t), ri1 (t), ™, rim (t), Li (t))}, k=1
t e T = [ 1 0 , t j, / ( 1 0 ) = 0, i = 1, ™ , n ,
v ( t ) e V ( t ), r i ( t ) e R i ( t , v ( t ) ) , i = 1, ™ , n ,
F(y(о)=E A-yS-) ^ min, i=1 V где yi (t) - сумма отклонений уровня сервиса приложения i к моменту времени t (т. е. в моменты времени 10,10 + h,™,t), через Pi обозначены весовые коэффициенты, выбираемые согласно приоритету каждого компьютерного приложения (большее значение весового коэффициента соответствует более высокому приоритету соответствующего приложения). Здесь роль управлений играют функции vi (t), ry(t), i = 1,™,n , j = 1,™,m .
Рассмотрим один из самых подходящих для дальнейшей практической реализации вариантов поставленной задачи (3), а именно, предположим, что на рассматриваемом промежутке времени управления постоянны, т. е. v i ( t ) = v i , rij ( t ) = rij , i = 1, ™ , n , j = 1, ™ , m . Тогда исходная задача может быть сформулирована в виде последовательности задач поиска минимума функции n • ( m + 1) переменных F ( У ( t 1 j ) ) = G ( v ii , r Si ) при условиях (1), т.е.
F (У(t1 s)) = G(vi, rij) ^ min, v(t) e V(t), ri (t) e R (t, vi (t)), i = 1,™,n, v, r на множестве конечных временных отрезков T0 = [100, t10], где t10 = 100 + q0h0, T1 = [101, t11], где t11 = toi + q1 h1 и т. д.
Спецификой рассматриваемой задачи является зависимость вида динамической системы (3) от неизвестных функций L (t), i = 1,™, n. При этом предполагается, что известны значения этих функций в некоторые предшествующие рассматриваемому отрезку времени моменты 10s -lshs, 10s -(ls -1)hs, „., t0s - h'. Этот факт позволяет осуществлять прогноз изменения функций L (t) на рассматриваемом отрезке времени (например, с помощью численных методов аппроксимации функций одной переменной).
Полученное таким образом управление (количество выделяемых ресурсов) будет носить кусочнопостоянный характер:
V(t) = v, ri(t) = ri, te Ts = [t0s,t1 s], s = 0,1,.., что позволит легко реализовать его на практике в процессе эксплуатации системы приложений или использовать его в качестве начального управления в некоторой итерационной процедуре улучшения управления.
2. Алгоритм решения задачи (на примере двух компьютерных приложений)
Рассмотрим алгоритм решения задачи динамического управления ресурсами на примере системы двух приложений – картографического сервиса «MapServer» и вычислительного сервиса «X-Com» [1].
Ресурсы, предоставленные приложениям: vi ( t ) – количество виртуальных машин (ВМ), обеспечивающих работу приложения, r i 1 – оперативная память ВМ (RAM, Мбайт), r i 2 – доля физического процессора, предоставляемая ВМ (CAP, %). Ограничения на предоставление ресурсов записываются в виде:
V ( t ) > 1, n < j^vi ( t ) < v + , г - V ( t ) < r i ( t ) < rJ + v i (t ), i = 1
£ r i ( t ) < ri + v + , r -< r i ( t ) < r + V + - ( n - 1) rj - , i = 1, ^ , n , j = 1, ^ , m , i = 1
где n = 2, m = 2, r 1 - = 128, r 1 + = 512, r2 - = 10, r2 + = 100, v + = 3.
Для построения уровня сервиса первого приложения на дискретном наборе моментов времени {5,6,7,8,9} используются функции p11(v1,r11,r12,L1) – среднее время отклика приложения, p12(v1, r11, r12,L1) – процент сетевых ошибок и L1(t) – пользовательская нагрузка на приложение, а также величина желаемого времени отклика p11 = 3000 миллисекунд. Функции p n( v 1, rn, r12, L) и p12(v1,r11,r12,L1) заданы таблично своим профилем производительности, функция L1(t) – значениями в моменты времени {0,1,2,3,4}. По этим данным были построены аппроксимации функциями p11, p12, L 1 по МНК в виде
{ _° 1
-
0, X a ki ( v )( r ) k h( r ) k 2 i ( L ) k 3 i ^ ,
i=1 J где aki – найденные согласно МНК постоянные действительные числа, а целые показатели степеней skli 3
удовлетворяют условиям - 2 < s^ < 2, - 1 < ^ s^ < 2;
i = 1
L1 (t) = b0 (L (0),^, L (4)) + b (L (0),^, L (4)) t, где b0 , b1 – найденные согласно МНК постоянные действительные числа.
Теперь отклонение уровня сервиса построим следующим образом: 44 1 11 11 1 11 12 1 12 1 11 12 1
д = X max { 0, - p + p ( v , r , r , L (5 + 1 ) ) } + ^ P ( v , r , r , L (5 + 1 ) ) . t = 0 t = 0
Можно подсчитать и максимальное отклонение уровня сервиса д 1+ = 15070.
Для построения уровня сервиса второго приложения используется функция p 21 ( v 2 , r 21 , r 22 ) – скорость расчета задач, находящихся в очереди, а также момент желаемого окончания расчетов 9 и величина начальной желаемой скорости расчета задач p 21 (0) = 18 задач/сек, что позволяет рассчитать текущую желаемую скорость расчета задач p 21 (5) = p 21 (0)( 9 - 5) задач/сек.
Функция p21(v2,r21,r22) задана таблично своим профилем производительности. По этим данным была построена аппроксимация функцией p 21 в виде p21 (v2, r21, r22) = 0.92451 - 0.00024r21 + 0.09777r22 - 0.345475v2 + 0.0002r21 v2.
Теперь отклонение уровня сервиса построим следующим образом:
S = ^ max { 0, p 21 (5) - p 21 ( v 2(5), r 21 (5), r 22 (5) )} .
t = 0
Можно подсчитать и максимальное отклонение уровня сервиса S 2+ = 90.
С учетом вышеизложенного, функцию G ( vi , rij ) запишем в виде:
2 S vi ri1 ri2 1 2 11 12 21 22 ,,
G(v,v,r ,r ,r ,r )= >,в-----—-->min,(4)
i=1
где Д = в 2 = 1 (это означает равные приоритеты обоих приложений).
Написана программа, моделирующая работу системы двух указанных приложений при задаваемой случайным образом пользовательской нагрузке с применением описанного метода выбора ресурсов. Ниже приводится пошаговое описание работы программы.
Шаг 1. Полагается s = 1, t 0 s = 5 мин.
Шаг 2. Снимаются показания пользовательской нагрузки L(t) в моменты t0s - 5, t0s - 4, t0s - 3, t0s - 2, t0s -1. Производится расчет прогноза изменения пользовательской нагрузки по МНК в виде L *( t)=b0 + b1t.
Шаг 3. Решается задача условной минимизации (4)
* * 1 2 11 12 21 22
G ( v , r ) = min G ( v , v , r , r , r , r ) , ( v , r ) € W
W = < ( v , r )
vi > 1, 2 < v1 + v2 < v+, r1 - < ri (t) < rJ+v+ - r1 -, r11 + r21 < rj+v+, r1 vi (t) < r1 (t) < r1+vi (t), i, j = 1,2
методом покоординатного спуска с постоянным шагом, в качестве начального приближения выбирается случайным образом набор точек в допустимой области.
Шаг 4. Перераспределяются ресурсы приложениям согласно найденным значениям ресурсов ( v * , r * ) .
Пересчитывается
^ p
21 21 2* 21* 22*
Р ( t 0 s )( ^ - t 0 s ) - 5 Р ( v , r , r )
целевой уровень второго
приложения по формуле
9 - t0 s - 5
. Полагается s = s + 1, 1 0 s = 1 0 s + 5. Осуществляется переход к ша-
гу 2.
3. Вычислительные эксперименты
Для проведения тестовых расчетов был сгенерирован случайный набор гладких пользовательских нагрузок. Две из них показаны на рис. 1 (первый вариант пользовательской нагрузки представлен сплошной линией, второй – пунктирной).

Рис.1
Результаты работы программы при v+ = 3 (не более трех ВМ на оба приложения в сумме) и увеличивающемся приоритете второго приложения (в зависимости от роста целевого уровня сервиса – желаемой скорости расчета задач) для каждого из вариантов прогноза представлены на рис. 2, 3 (рис. 2 соответствует первому варианту пользовательской нагрузки, рис. 3 – второму). Изменяющийся во времени целевой уровень второго приложения имеет смысл ограниченного конечного времени расчета. Из рисунков видно, что при различных пользовательских нагрузках алгоритм дает устойчиво хорошее динамическое перераспределение ресурсов с учетом поддержания изменяющихся характеристик на целевом уровне.
Заключение
Представленная математическая модель задачи распределения ресурсов для системы компьютерных приложений построена с использованием теории оптимального управления, при этом в качестве управления рассматривается количество ресурсов, выделяемых каждому компьютерному приложению. Предложенный метод решения задачи учитывает потребности и приоритеты каждого из приложений при изменяющейся пользовательской нагрузке на приложения, что позволяет существенно повысить эффективность совместного использования ограниченных ресурсов системы.