Научная статья на тему 'Задача составления расписания серверных процессов территориально-распределенной сети'

Задача составления расписания серверных процессов территориально-распределенной сети Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
143
62
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕРВЕР / ЗАГРУЖЕННОСТЬ / СОСТАВЛЕНИЕ РАСПИСАНИЯ / SERVER / LOAD / SCHEDULING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Леденева Т. М., Родькина М. Б.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Леденева Т. М., Родькина М. Б.

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

SERVER PROCESSES SCHEDULING FOR DISTRIBUTED NETWORK

The article is devoted to scheduling of server processes for client-server application. There are the problem model and the algorithm of server load calculation in a time period in the paper. Servers schedule evaluation function is proposed

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

УДК 519.85

ЗАДАЧА СОСТАВЛЕНИЯ РАСПИСАНИЯ СЕРВЕРНЫХ ПРОЦЕССОВ ТЕРРИТОРИАЛЬНО-РАСПРЕДЕЛЕННОЙ СЕТИ Т.М. Леденева, М.Б. Родькина

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

Ключевые слова: сервер, загруженность, составление расписания

Рассмотрим распределённую территориально информационно-телекоммуникационную сеть, включающую в себя серверные станции и клиентские места, то есть рабочие станции конечных пользователей, в которой работает приложение типа клиент-сервер. На каждом сервере хранятся базы данных, к которым могут обращаться пользователи и другие серверы. Каждая база данных может реплицироваться с одной или несколькими репликами на своём или других серверах. Основные процессы сервера: репликация, агенты по расписанию, программы (команды по расписанию). Агент - это процесс обработки данных, который привязан к определённой базе данных и запускается в ней, хотя документы, которые он обрабатывает, могут быть и в других базах данных. Каждый агент может просматривать все документы базы данных либо только новые и модифицированные документы, и изменять часть из них. Чтобы установить расписание для агента нужно указать время первого и последнего запусков и интервал времени между запусками.

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

Чем больше процессов запущено, тем медленнее работает сервер, поэтому у сервера есть такой параметр, как максимальное количество процессов. Если подошло время агента по расписанию, а сервер занят другими агентами, то агент ожидает. Если агент работает слишком долго, то его работа прерывается. Основная проблема настройки расписания агентов заключается в том, что, чем больше документов обрабатывает агент, тем

Леденева Татьяна Михайловна - ВГУ, д-р техн. наук, профессор, e-mail: [email protected] Родькина Маргарита Борисовна - ВГУ, аспирант, e-mail: [email protected]

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

Таким образом, задачу можно сформулировать следующим образом.

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

Такой вид задач можно отнести к смешанным задачам теории расписаний [1], [2]. Если исключить репликацию серверов, то задача сводится к М задачам упорядочения запусков агентов для каждого сервера отдельно. Но если репликацию учесть, то за счёт обмена данными появляется необходимость строить расписание для всей системы сразу.

Для простоты загруженность сервера можно оценить загруженностью процессора. Часть загрузки сервера всегда приходится на обработку запросов пользователей, часть на запуск агентов, программ и репликацию. Когда процессор загружен слабо, запросы обрабатываются быстро. По мере возрастания нагрузки на сервер, они обрабатываются всё медленнее, и в какой-то момент пользователю, отправившему запрос, становится видно, что исполнение запроса задерживается, то есть производительность сервера падает. Поступления запросов пользователей

контролировать невозможно, но можно построить эмпирический усреднённый график запросов, отражающий закономерности

поступления запросов в течение суток. На основании такого эмпирического графика можно построить идеальную функцию загруженности для агентов.

Идеальной функцией загруженности назовём функцию М(х) такую, что в каждый момент времени I, её значение М@) является верхней границей загруженности сервера, при которой его производительность можно считать нормальной. Для каждого сервера можно найти идеальную функцию на основе эмпирических данных. М (/) е [0,1], * = о,Ттх . Тшах - максимальное время. График идеальной функции загруженности назовём идеальной линией.

Для каждого сервера можно определить некоторый порог производительности, после которого, производительность считается неудовлетворительной, поэтому нужно настраивать расписание так, чтобы загрузка всегда была ниже этого порога. Для учета этого порога введём критическую функцию загруженности К(1). График этой функции -критическая линия.

к (0 е [0,1], ы (0 < к (0, * = Одт:.

Качество расписания зависит от того, как загрузка сервера в течение суток соотносится с идеальной и критической линиями.

Введём критерии оценки загруженности сервера х(ґ) в момент времени ґ.

Обозначим через К (і) положительное

отклонение от критической линии:

0, если x(t) < K(^); х(і) - К(і), если x(t) > Kф.

(1)

К (і) - отклонение от идеальной линии:

К2 (0 =

1, если х ^)< їй ^)у х ^) = 0;

їй (і )(1 - х (і)) /Л ті/л (2)

х (і )(і - їй (і))’

c(t )> їй ^).

Критерий (1) имеет область значений [0,1-тт (К(*))^| , критерий (2) - [0,1] . Можно

масштабировать значения критерия (1), например, по формуле:

Кіно,, (і) =

1 - тіп (К ^))

К1(і)

В качестве обобщённой функции критериев в точке можно использовать свёртку:

К (*) = а к (*) + аг (1 - К (*)), а + а2 = 1 (3)

а, а2 - веса, отражающие значимость критериев. Между ними можно установить зависимость а = Иа2 , где коэффициент И показывает отношение весов. Отклонение от критической линии обычно важнее, чем отклонение от идеальной. Для большинства

систем следует выбирать И е 3,

Таким образом, каждому расписанию X можно поставить в соответствие вектор значений

(К (1) , К (2) ,-К (Ттх )) , рассчитанных по формуле (3).

Для сравнения расписаний сервера введём функцию:

1 *тах

^ = ^т ^ К° (і)'

тах і=1

(4)

Параметр р в (4) определяет, как ведет себя функция при изменении значения любого К (*) при фиксированных остальных. Например, при р = 1 приращение функции при изменении одного из К (*) не будет зависеть от исходного значения критерия. При больших р , может сильно возрасти сложность вычислений. Поэтому достаточно взять р = 2.

Для составления модели задачи, введём обозначения.

М - количество серверов; щ, I = 1,М - общее количество агентов и программ на сервере ц

[*тпЦ , СахЦ ] - промежуток времени на

сервере г, в течение которого агент ] должен запуститься хотя бы один раз;

^тту - минимальное число запусков агента

7 н^ ЬЬ рвере г;

[*^тп 1 , *^тах 1 ]([ЩтЫ ]) - время дня

(ночи) на сервере г;

А(АЩ) - максимальное время работы агентов на сервере г днем (ночью);

1

Атй (Атп) - максимальное количество

параллельных процессов на сервере і днем (ночью);

Ящ - максимальное количество

параллельных репликаций сервера i;

L = (lj), i = , j = 1

, max n

i=1M

загрузка

сервера i процессом j;

C = (Су) - количество документов,

которые должен обработать агент j на сервере i на момент запуска;

Cp = (cp) - количество документов,

которые должен обработать работающий агент j на сервере i;

S = (s#.) - скорость обработки документов агентом j на сервере i;

fn = (tny) - время, в течение которого агент j работает на сервере i;

fs = (tSy) - время следующего запуска агента j на сервере i;

DsiJk = (dsjJk) є [0,1], i = 1,M, к, j = 1, max n,. - доля,

/=1M

на которую агент j снижает скорость обработки агента k на сервере i;

Daijk =( datjk )є[0,1] - доля документов,

которые после работы агента j должны быть обработаны агентом к на сервере i;

Dnij =( dnij )є[0,1] - количество новых

документов в единицу времени на сервере i, которые должны быть обработаны агентом j;

Drtj = (dry ) є [0,1], i, j = 1, M - количество

новых документов в единицу времени на сервере i, которые должны быть

реплицированы на сервер j;

Rs = (rstJ) - скорость передачи документов

с сервера i на север j. Репликация не влияет на скорость работы агентов.

Sr = (sru) - время следующего запуска репликации сервера i с сервером j;

Rp = (rp) - количество документов,

которые необходимо передать с сервера i на сервер j во время репликации;

Rd = (rdiy) - количество документов,

которые должны быть переданы с сервера i на сервер j до начала репликации;

Rl = (rh) - загрузка сервера i репликацией с сервером j;

Ra = (raijk), i, j = 1, M, к = 1, max nt - доля

/=1M

реплицированных документов, которые после репликации с сервером j должен обработать агент к на сервере i;

Ar = (ari]k), i, j = 1, M, к = 1, max nt - доля

i =1M

реплицируемых на сервер j документов, которые обрабатывает агент к на сервере i.

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

D (X )^min i = 1, M

X = X (A,R);

(5)

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

A = (a), i = 1, M, j = 1, max nt;

t =1M

0, если j > n;

a

(ts, p, te), если j < n;

R = ( r), i, j ==M;

0, если rSy = 0;

(ts, p, te), если rSy > 0;

aj (ts ), aj (p), aAte ), rj (ts ), r (p), r,1{te ) є [0, fmax ], aj * 0, rj* 0;

3l: a (ts)+l • a (p) < a (te), a (t,)+l • a (p)є , t-, j ];

atj (te )- aj (ts )

(б)

(7)

/ (p)

-> L;

(9)

где X - суточное расписание; - расписание агентов и репликации; В - оценка расписания, вычисленная по формуле (4). В формулах (6) и (7): ^ - время первого запуска агента 7 на сервере г, *е - время последнего запуска, р -временной интервал между запусками агента;

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

I = 1,M, Ц = 1,тахщ, * = 0,7тах и 2 = (2т),

i, j = 1, M, t = 0,Г, . y„, = 1, если в момент

у ^ max ^ і/і

времени t на сервере i запущен процесс j, иначе yijt = 0, zff/ = 1, если в момент времени t серверы

i и j реплицируются, иначе z = 0 .

Для нахождения x (t) предлагается

следующий алгоритм.

Инициализация:

Vi, j, t tSj = av (ts) , cp = 0 , tntJ = 0 , rnj = 0 , srj = rj (ts) , yjt = 0, zw = 0, x Iі) = 0 .

Шаг t ( t є[0, fmx ] ).

бо

1. Пересчитать количество документов для обработки агентами:

i = 1, M, j = l,max n, t > 0

t=1M

сjj = сj + Dntj + X min {stk, cPtk} Datkj +

k: y.it-l =ї

X min{rski, p} ra,k

+

k: z,it-l=ї

2. Пересчитать количество документов для репликации:

i, j = 1,M, t > 0

rdj = rdtj+dry + x min К, cp,k} ari

k: y.it-l =ї

j'k

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

i = 1, M, у = 1, max n, t > 0, = 1

/=iM

a. tn#. = n +1;

b. сру = max і CPj - Sj-

1 - X Ds,k

V k *J: y,kt-l

,0 .

4. Для i = 1,M, у = 1, max nt, t > 0, y t = 1 , если

i=1M

выполнено хотя бы одно из условий:

a. АЩ < П , t e[tdmIn, , tdmax, ] ;

b. Atni < Лу , t e[tnmm, , tnmax, ] ;

c.

cp,j =0;

то выполнить действия:

a. yijt = 0 ;

b.

c.

d.

njt

tn = 0 ;

ctj = c„ + сРі/ ;

[t + a,j (p)-l: aj (te )> t + atj (p)-1

t^ = і

[frmx + l: a,J (te )< t + a,J (p)-1.

Если ни одно из условий не выполнено, то

то выполнить следующие действия:

a. выбрать l : ts = min ts ;

J J

b. если s < t , т0 y,Jt =1 , cpu = ctf , cu = 0 ,

tsil = fmax + 1

б. Для i, j = 1,M, j > i, t > 0, zff/_j = 1:

a. пересчитать rp = min {rp - rstj, 0}, rpj, = min {rpj, - rsj,,0} ;

b. если rp,j = a rpH = 0 , т0 zm = Zjit = 0 ,

P't fit

ft+r,j(p)-l: r(te)>t+rv(p)-1; rs„ = і

l^fmax + l: r,J (te )< t + r,J ( p )-1; иначе zm = zjit = 1 .

7. Для i = 1,M, если выполнено X z#, < Rmi:

J: z,jt=l

a. выбрать к: ^ = тіп .г ;

,:Е, <Ят, ]

b. если 8Гк < і , то =1, =1, гр к = гй к ,

ГРк< = гйМ , 5Гк = 5Гк- = Ттах + 1 .

8. Вычислить загрузку каждого сервера в момент времени ґ

і =1 M, х (і) = £ /, + £ г/,. .

,':Л, =1 М, =1

Найденные по алгоритму хі (і), позволяют

оценить каждое конкретное расписание.

Как и большинство задач теории расписаний, задачу (5)-(9) из-за сложности неудобно решать точными методами. Для решения данной задачи предполагается использовать эволюционные методы.

Литература

1. Конвей Р.В., Максвелл В.Л., Миллер Л.В. Теория расписаний. М: Наука, 1975. 360 с.

2. Michael L. Pinedo. Scheduling: theory, algorithms and systems. Springer, 2008. 678 с.

y.j, =1.

5. Для i = 1, M , если выполнено одно из условий:

max nt

a. X У ij< < Amdi ’ t e Hmin, >tdmaxi ] ;

у=1

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

max n

b. X Уу < Amni ’ t e [tnmin,, tnmax, ] ;

у=1

Воронежский государственный университет

SERVER PROCESSES SCHEDULING FOR DISTRIBUTED NETWORK T.M. Ledeneva, M.B. Rodkina

The article is devoted to scheduling of server processes for client-server application. There are the problem model and the algorithm of server load calculation in a time period in the paper. Servers schedule evaluation function is proposed

б1

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