Научная статья на тему 'Адаптация систем сбора данных к входным перегрузкам'

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

CC BY
143
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВХОДНЫЕ ПЕРЕГРУЗКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лукин Дмитрий Викторович

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

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

Текст научной работы на тему «Адаптация систем сбора данных к входным перегрузкам»

УДК 658.512.011.56

Д. В. Лукин

АДАПТАЦИЯ СИСТЕМ СБОРА ДАННЫХ К ВХОДНЫМ ПЕРЕГРУЗКАМ

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

Введение

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

Устойчивость к входным перегрузкам - одно из важнейших требований к системе сбора данных. Недостаточная устойчивость проявляется в сбоях, отказах обработки (потери) событий. Как правило, максимум вероятности отказа (10-8-10-12 и менее [1]) задается в требованиях эксплуатации. Также важно, чтобы в случае сбоя этот факт был выявлен и зафиксирован в протоколах работы системы. Очевидный способ обработки перегрузок - буферизация входных потоков - требует демпфирующих буферов, размер которых зависит от характеристик контролируемых систем и параметров компьютера.

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

1 Модель обработки данных при перегрузках

Для описания и имитации процессов обработки входных данных предложена модель системы массового обслуживания (СМО), показанная на рис. 1. Она содержит три обрабатывающих узла, соединенных посредством промежуточных очередей (поскольку вероятность утери события оценивается для наихудшего варианта работы системы сбора, то полагается, что вся обработка ведется в ней последовательно). Формирователь первичных событий выделяет подлежащую учету информацию (события) из входных сигналов. Обработчик первичных событий обеспечивает их автоматический анализ, ин-

терпретацию и формирование вторичных событий по первичным данным. Обработчик вторичных событий заносит информацию в базу оперативных и исторических данных.

Рис. 1 Модель обработки данных

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

Обработка вторичных событий

Формирование вторичных

: Ф

Юступлениц сигнала

Начало ожидания Конец ожидания

событий

Л

ормирование первичных событий

► Т

Т1 Т2 Тз Т4 Т5 Тб Т7

Рис. 2 Диаграмма обслуживания событий в системе сбора данных

Перегрузка (рис. 3) имитируется поступлением на интервале Ттг = Т2-Т1 потока событий повышенной интенсивности Х0у1 > Хауг. Если количество событий при перегрузке (Х0У1* Т0у1) превысит размер буфера для их хранения (Дпах), то произойдет переполнение буфера и утрата событий.

Рис. 3 Имитация перегрузки системы сбора данных

При анализе процессов введены следующие допущения:

- до начала перегрузки (Т < Т1) система работает в номинальном режиме, ^ = ^ауг, т.е. обрабатывается поток номинальной интенсивности;

- система сбора данных работает в установившемся режиме, последствия предшествующих перегрузок незаметны.

2 Выбор структуры обработки событий

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

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

Количество обрабатываемых элементов информации зависит от стадии процесса. На каждом цикле обработки для каждого входного сигнала формирователь первичных событий создает не более одного события. Вследствие этого за один цикл опроса сигналов в момент времени ^ очередь первичных событий пополняется «(О = 0-Ы,„р событиями, где Ы,„р - число каналов информации. В общем случае «(О << Ы,„р за счет исключения неизменных сигналов и отсеивания холостых изменений входных сигналов (из-за наличия этой существенной разницы прямое накопление входных сигналов менее эффективно, чем накопление первичных событий). Чаще всего для каждого первичного создается одно вторичное событие. Однако их число возрастает из-за дополнительных источников вторичных событий (служебных, грядущих и др.). Поэтому наименьшее количество элементов информации - при обработке на уровне первичных событий.

Скорость заполнения очереди первичных событий заметно больше скорости заполнения очереди вторичных событий. Это обусловлено как меньшим размером сохраняемых данных, так и тем, что в большинстве систем формирование первичных событий ведется только с использованием ОЗУ. Для заполнения очереди вторичных событий могут потребоваться данные, хранимые на НЖМД, что заметно снижает скорость обработки.

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

3 Основные характеристики процесса обработки событий

В соответствии с классической теоремой [2] о максимальном потоке и минимальном разрезе сети результирующая производительность системы сбора данных - по представленной модели СМО - определяется блоком с наименьшей производительностью. Как правило, норма обслуживания формирователя первичных событий превосходит нормы обслуживания формиро-

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

Другое упрощение достигается при применении теоремы Григелиониса [3], утверждающей, что суперпозиция большого числа взаимно независимых потоков малой интенсивности при некоторых регулярных условиях приближается к пуассоновскому потоку. Предположение о пуассоновском характере входного потока позволяет напрямую использовать известные [4] аналитические результаты для СМО-моделей, приведенные ниже:

- норма обслуживания (ц) есть число событий (заявок), обработанных в единицу времени: ц = 1/Е(4), где Е(Ь - математическое ожидание времени обработки;

- интенсивность обслуживания (р) показывает загрузку системы при обслуживании потока заявок: р = А/ц, где А - интенсивность потока - математическое ожидание числа заявок, поступающих в единицу времени.

Для оценки максимального размера демпфирующего буфера предположим, что устройство обслуживания имеет безграничную область ожидания (М/М/1/го в символике Кендалла): для п^^, Ьчтлх^^х>, где п - число событий,

- размер очереди. Заявки обслуживаются в порядке поступления, со временем ожидания ^. Параметры обработки в этом случае [5] таковы:

- вероятность ожидания событием начала обработки РК=Р(^ > 0):

Р (^ > 0) = Р„ = ^ Р1 = РоР/(1 -р) = Р ,

/=1

где р1 - вероятность обработки набора из / событий (р0 - вероятность отсутствия входных событий, т.е. состояния простоя);

- средняя длина очереди Ь„=Е(1„) как математическое ожидание числа событий в очереди, определяется уравнением

= рор2/(1 - р)2 = рРД1 - р) = р2/(1 - р); (1)

- вероятность потери Руег событий (для модели М/М/1/Хжтах). Событие утрачивается, если заняты все элементы обслуживания и вся очередь ожидания, т.е. если в системе сбора данных обрабатывается (при одном элементе обслуживания) Ьктах + 1 = п событий. Вероятность потери Руег события идентична вероятности состояния Р(«):

Руег=Р(п)=роРп=рп(1 - р)/(1 - р«+1). (2)

Приведенные параметры используются в механизме адаптивного регулирования размера демпфирующего буфера, описанном далее.

4 Определение размера демпфирующего буфера

Размер буфера (£жтах) для демпфирования перегрузочных потоков автором предложено определять по следующей формуле:

^млт&х Хау1 Тау1 + 2^ауг+ Nprb, (3)

где Ыауг - число событий в очереди в нормальном режиме (до перегрузки); №ргЬ - число свободных мест для обеспечения вероятности потерь при максимальном предполагаемом заполнении, согласно формуле (2); АОу1 - интенсивность перегрузочного потока; ТОУ1 - длительность перегрузки.

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

^ут&х = АоуГ ТоуГ + 2р2/(1 - р) + ^рЛ. (4)

При перегрузках, превышающих имеющееся в формулах (3), (4) произведение Аоу! ТОу1, события будут утрачены вследствие переполнения буфера. Вероятность этого соответствует вероятности превышения реальной длительности и/или интенсивности перегрузочного потока над проектными данными. Эта вероятность зависит от особенностей конкретной контролируемой системы, и определить ее какими-либо аналитическими методами нельзя.

Для иллюстрации данной проблемы рассмотрим пример, использующий параметры, измеренные автором при тестировании программного обеспечения. Входной поток различной интенсивности создан имитатором сигналов с частотой 1 Гц (одно событие в секунду для объекта). Изменение интенсивности потока достигалось изменением количества объектов. Экспериментально определены: удельное время обработки события £(4) = 30 мс при среднем входном потоке 30 событий в секунду. Соответственно, параметры работы:

- норма обслуживания ц = 1/£(4) = 1/0,03 = 33,33 (событий в секунду);

- интенсивность обслуживания р = А/ц = 30/33,33 = 0,9.

Время обработки для заданного числа событий определялось по системному таймеру компьютера. Для уменьшения погрешности, обусловленной дискретностью счета таймера компьютера (18 мс), использовалось большое количество (не менее 1000) событий. Полученные в ряде экспериментов значения усреднялись для исключения влияния посторонних факторов. Для отработки 10-кратной перегрузки (300 событий в секунду) в течение 20 с размер буфера по формуле (4) должен быть следующим:

£жпах = 300 ■ 20 + 2 ■ (0,9)2/(1 - 0,9) = 6000 + 17 = 6017.

Как видно, превалирующее влияние на емкость буфера оказывают «перегрузочные» события - 6000 элементов из 6017. Вероятность потери событий в режиме работы без перегрузки (р = 0,9, п = 6017) составляет, согласно (2), пренебрежимо малую величину:

Руег = 0,96017(1 - 0,9)/(1 - 0,96018) к 4,75 ■ 10-277.

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

5 Адаптивное регулирование размера буфера

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

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

- граничная вероятность потери событий Руег, по умолчанию - 10-20;

- начальный (максимальный) размер буфера Ьктах, по умолчанию 10 % от объема ОЗУ компьютера;

- период контроля системы (время цикла для уменьшения размера буфера), по умолчанию - 30 суток.

Алгоритм регулирования базируется на периодическом итеративном расчете величины буфера (Ь„) по формуле (4). Для этого последовательно выполняются перечисленные ниже действия.

1. При первом запуске системы сбора данных в работу устанавливается начальное значение размера буфера (Ь„ = Ь„тах).

2. При первом запуске в работу рассчитывается величина NргЬ - минимальный размер буфера, обусловленный заданным лимитом потери события Руег. Расчет выполняется для предопределенной интенсивности обслуживания (например, р = 0,95). Используется формула (2) или заранее табулированные значения.

3. В процессе оперативной работы системы сбора данных непрерывно контролируются следующие показатели:

- количество обработанных событий на разных этапах (N1 - первичных, N - вторичных);

- суммарные затраты времени на обработку событий на каждом этапе (Т1 - формирование первичных, Т2 - обработка вторичных событий);

- нормы обслуживания на разных этапах (ц= N\/T\, ц2= ^/Т2);

- средние суммарные интенсивности обслуживания на разных этапах:

р1 = р2 = где Т0 - суммарное время работы программы;

- максимальные значения интенсивности обслуживания на фиксированных шагах времени (0 для различных этапов:

р1тах(0 = МАХ( Т' ХП, р1тах(^ - 1)), р2тах(0 = МАХ( Т' 2П, р2тах(«‘ - 1),

где Т' 1 и Т' 2 - затраты времени на разных этапах на интервале ^;

- степень заполнения (Ькгют) буфера в номинальном режиме.

4. В случае заполнения верхней части буфера размером ^гЪ вырабатывается служебное сообщение и флаг «предупреждение: необходимо увеличить размер буфера». Аналогично, при переполнении буфера определяется число утраченных входных событий как разница между числом запрошенных и имеющихся позиций буфера. Вырабатывается флаг «авария: необходимо увеличить размер буфера». При этих сообщениях фиксируются: достигнутая степень заполнения буфера (Ькгют), максимальные (р1тах, р2тах) и средние (рь р2) интенсивности обслуживания.

5. При увеличении размера буфера его величина вычисляется по формуле (4) с зафиксированными в сообщениях значениями.

6. Автоматически по установленному периоду контроля проверяется возможность уменьшения размера буфера. При этом оценивается максимальная степень заполнения буфера (Ькпот) на истекшем периоде эксплуатации. Рассчитывается коэффициент использования КЪиследующим образом:

КЪи// (Рч>пот +

^гь)/Ьк.

Если КЪи$ < 0,9, то вырабатывается служебное сообщение и флаг «предупреждение: рекомендуется уменьшить размер буфера». Расчет размера производится описанным выше образом по формуле (4). Величина коэффициента КЪи^-= 0,9 обеспечивает примерно 10 % зону нечувствительности, которая исключает излишне частые регулировки и автоколебания в процессе адаптации размера буфера. Следует отметить асимметрию регулирования: увеличение размера происходит быстро, а уменьшение - при неиспользовании части буфера в заданном периоде контроля.

7. Период автоматического контроля может изменяться динамически для повышения скорости настройки системы. На начальном этапе эксплуатации период небольшой, а при переходе в штатный режим работы он увеличивается. Автором использовался простой эмпирический алгоритм изменения шага контроля: минимальный период контроля устанавливается в 1 ч и далее увеличивается на число целых часов работы системы, вплоть до достижения установленного периода контроля.

Экспериментальные результаты работы описанного алгоритма приведены ниже. Показан процесс настройки параметров в реальном программном обеспечении на имитаторе системы в течение первых суток работы (1500 мин). На рис. 4 показаны размер буфера, максимальное число обрабатываемых данных и поток событий. На фоне нормального потока (0-800 событий в минуту) наблюдаются 25-кратные перегрузочные потоки (до 20000 событий). При работе наблюдалась однократная утеря событий, на 514 мин работы. Рисунок 5 отображает расчетную интенсивность обслуживания по отношению к максимальной, составляющей 1500 событий в минуту. Работа с максимальной интенсивностью наблюдается во время «разбора» перегрузочных потоков. При настройке параметров использовался описанный выше динамический шаг по времени с оперативным уменьшением размера буфера. Такие попытки выполнялись на 60, 120, 240, 480, 960 мин работы. Оптимальный размер буфера (22513 элементов) был установлен примерно через 8 ч работы, после увеличения ранее уменьшенного буфера. Отмеченная утеря событий обусловлена малым периодом контроля, примененным для демонстрации работы алгоритма. При большем периоде к концу первых суток был бы установлен требуемый размер буфера без потери событий.

-й-

25000 20000 15000 10000 -5000 -

1

1 61 121 181 241 301 361 421 481 541 601 661 721 781 841 901 961 10211081114112011261132113811441 г

—Поток событий Макс. событий —■—Буфер Рис. 4 Поток событий и изменение демпфирующего буфера

1 61 121 181 241 301 361 421 481 541 601 661 721 781 841 901 961 10211081114112011261132113811441 г

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

----Загрузка -«—Макс. загрузка

Рис. 5 Загрузка системы при обработке событий

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

Заключение

Описанная в статье структура обработки и алгоритм адаптивного регулирования размера демпфирующего буфера позволили существенно повысить эффективность и обеспечить заданную надежность работы. Они использованы в ряде промышленных программных продуктов [7]. Действенность предложенных решений подтверждена многолетней практической эксплуатацией в сложных условиях и при разных параметрах компьютеров.

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

1. Справочник по проектированию систем передачи информации в энергетике / С. С. Агафонов, Б. А. Жучков, В. Х. Ишкин, И. И. Цитвер ; под ред. В. Х. Ишки-на. - 2-е изд. - М. : Энергоатомиздат, 1991. - 264 с.

2. Липский, В. Комбинаторика для программистов : пер. с польск. / В. Липский. -М. : Мир,1988. - 214 с.

3. Григелионис, Б. И. Предельные теоремы для сумм процессов восстановления / Б. И. Григелионис // Кибернетику на службу коммунизму. - М. ; Л. : Энергия, 1964. - Т. 2. - С. 246-265.

4. Жожикашвили, В. А. Сети массового обслуживания / В. А. Жожикашвили, В. М. Вишневский. - М. : Радио и Связь, 1988. - 192 с.

5. Бертсекас, Д. Сети передачи данных : пер. с англ. / Д. Бертсекас, Р. Галлагер. -М. : Мир, 1989. - 544 с.

6. Бесекерский, В. А. Теория систем автоматического регулирования / В. А. Бе-секерский, Е. П. Попов. - М. : Наука, 1975. - 768 с.

7. Свид. об официальной регистрации программы для ЭВМ № 2003610682. Графика -Автоматизированная Диспетчерская Система («Графика-АДС»). - Правообладатель ООО НТП «Энергоконтроль» г. Заречный, Пензенской обл. / А. Г. Гордиен-ко, Д. В. Лукин ; зарег. в Реестре программ для ЭВМ, г. Москва, 19.03.2003 г.

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