Научная статья на тему 'Кэширование информации при обработке событий в SCADA-системах'

Кэширование информации при обработке событий в SCADA-системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
187
59
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЭШИРОВАНИЕ ИНФОРМАЦИИ

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

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

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

Текст научной работы на тему «Кэширование информации при обработке событий в SCADA-системах»

УДК 658.512.011.56

Д. В. Лукин

КЭШИРОВАНИЕ ИНФОРМАЦИИ ПРИ ОБРАБОТКЕ СОБЫТИЙ В SCADA-СИСТЕМАХ

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

Введение

Важным компонентом современных промышленных систем автоматизации являются SCADA-системы: «Supervisory Control And Data Acquisition» -«сбор данных и диспетчерский контроль». В них в реальном масштабе времени собирается и обрабатывается для последующей публикации различная информация из контролируемой системы. Программное обеспечение для SCADA-систем должно работать на компьютерах с различными характеристиками, в широком спектре параметров контролируемых систем. И в каждом приложении обеспечивать высокую скорость обработки информации при минимальных затратах ресурсов компьютера.

Упрощенный порядок обработки данных в SCADA -системе показан на рис. 1.

L

Информация из контролируемой системы в момент времени T(i)

7

Список вторичных событий

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

к

Информационная модель контролируемой системы

Рис. 1 Функциональные части системы сбора данных

| Формирователь первичных событий h Информация от T(i - 1)

Список первичных событий

jr

Список грядущих событий

| Формирователь вторичных событий

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

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

Как показал опыт проектирования и эксплуатации БСЛВЛ -систем, существенное влияние на скорость обработки в них оказывают задержки, связанные с обращением к устройствам хранения - накопителям на жестких дисках (НЖМД). Задержки возникают как при считывании информации, используемой для обработки событий, так и при записи обработанных данных. Кэширование чтения ускоряет обработку событий за счет двух факторов:

- сокращения затрат на чтение данных, используемых при обработке;

- высвобождение устройства хранения для выполнения других операций, например записи полученных данных.

Особенности реализации средств кэширования считываемых данных в 8СЛБЛ-системах рассмотрены далее.

1 Особенности организации кэширования данных о событиях

В компьютере и в операционной системе, как правило, имеются несколько встроенных средств кэширования в разных элементах обработки данных (рис. 2). Рассматриваемый далее кэш-буфер в составе БСЛВЛ -систем относится к категории «кэш-памяти прикладных программ».

Рис. 2 Структура кэш-памяти вычислительной системы

Известно [1], что характеристики вычислительного процесса с буферизацией данных разделяются на две группы: внешние (вероятность удачного обращения, емкость, время ожидания данных и др.) и внутренние (быстродействие, стоимость буфера). Анализ способов проектирования и порядка эксплуатации средств для кэширования данных о событиях в БСЛВЛ-системах позволил выявить следующие особенности их работы.

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

прочих вариантах. Исходным (наихудшим) случаем считается длительность процесса обслуживания, когда каждое событие требует выполнения в полном объеме операций чтения с НЖМД при максимальных задержках.

2. Оптимальный размер буфера для хранения кэшируемой информации зависит как от состава, количества и характеристик (например, частот свершения) обрабатываемых событий, так и от характеристик компьютера - объема ОЗУ, быстродействия и др. Эти параметры неизвестны на этапе проектирования программного обеспечения. Поэтому размер буфера целесообразно адаптивно регулировать в ходе эксплуатации БСЛВЛ-систем. Для этого необходимо задать способ оценки эффективности использования буфера.

3. Штатные системы кэширования компьютеров используют предположение [2] о преимущественно последовательной выборке из памяти команд (данных) при работе программ. Это, в общем случае, верно и для систем сбора данных, если рассматривать процессы выборки на уровне операций чтения-записи. Однако по отношению к порядку возникновения событий указанное предположение в общем случае неверно. Согласно теореме Григелио-ниса [3], входной поток БСЛВЛ -системы близок по характеру к пуассонов-скому потоку (эта теорема утверждает, что суперпозиция большого числа взаимно независимых потоков малой интенсивности при некоторых регулярных условиях приближается к пуассоновскому потоку). В таком потоке события приходят в случайном порядке, что затрудняет уменьшение задержки начала их обработки.

4. Частоты Дг) свершения отдельных событий Еу(г) в контролируемой системе, как правило, небольшие (табл. 1, 2). Несмотря на это, поток входных событий в БСЛВЛ-системе достаточно велик за счет суммирования информации от многих источников.

Таблица 1

Характеристические частоты технологических процессов [4]

Устройства, в которых протекают технологические процессы Диапазон частот, Гц

Паровой котел 5-10-4... 1102

Печь Сименса-Мартина 2-10-3... 1

Котел с мешалкой 210-6. 210 2

Теплообменник 110 -3. 510 2

Сушильный барабан 2-10-4...2-10-2

Водяная турбина 110-2. 2101

Электросеть общегосударственного значения 510-2.210-1

Кипящий реактор 210-2.110-1

Регулятор прокатного стана 110-3.210-2

Регулятор толщины фольгопрокатной машины 0,1.2

Положение самолетов 510-2.110-1

Курсовой угол кораблей 110-3.210-1

Таблица 2

Интенсивность потока заявок для задач управления [5]

Вид процесса

Интенсивность потока, 1/с

Серийное производство поливинилхлорида 0,200

Работа станка механической обработки 0,568

Работа холоднопрокатного стана 0,988

Работа обогатительной фабрики 1,014

Процессы в клинической лаборатории 3,121

Контроль состояния пациентов 250,000

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

5. В SCADA-системе имеется важная информация, которую штатные средства кэширования использовать не могут. Например: распределение фактических частот свершения отдельных событий за предшествующий период эксплуатации; функциональный приоритет событий; перечень грядущих (достоверно ожидаемых) событий; перечень прогнозируемых событий (вероятно ожидаемых в текущем состоянии контролируемой системы) и др.

2 Структура специализированного кэш-буфера

Для исключения негативного влияния выявленных проблем предложено использовать в SCADA-системах многоэлементный кэш-буфер со специальными стратегиями заполнения и выборки, снабженный механизмом адаптивного регулирования размера (рис. 3). На рис. 3 также показан демпфирующий буфер, служащий для накопления перегрузочных потоков событий из контролируемой системы. В кэше выделяются три части, имеющие разные стратегии заполнения и регулирования размера. Общий объем буфера Wb определяется как

Wb Woper + Wfreq + Wimp,

где Woper - оперативный буфер хранения обработчиков текущих событий; Wfreq - буфер для заранее загружаемых обработчиков частых событий; Wimp -буфер для заранее загружаемых обработчиков важных событий.

Размер буфера для функционально важных событий Wimp определяется проще всего: по числу таких событий после завершения ввода данных о контролируемой системе. Эта информация считывается при запуске SCADA-системы и удерживается в ОЗУ, что позволяет до минимума сократить время обработки подобных событий. Если параметры компьютера не позволяют загрузить данные всех важных событий в ОЗУ, то заносится только часть с наибольшим значением приоритета или частоты свершения (очевидно, что состав кэшируемых событий должен регулироваться в зависимости от фактических частот свершения, по описанной ниже методике для частых событий). В других частях буфера используются более сложные алгоритмы.

Рис. 3 Структура буферов системы сбора данных

3 Заполнение оперативного буфера и регулирование его размера

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

1) на свободное место в буфере, если оно есть;

2) взамен последнего из последующих несерийных событий, если оно

есть;

3) взамен последнего из последующих серийных событий, если все события в буфере серийные;

4) если все события в буфере предшествуют по очереди обработки данному событию или серийные, то заполнение буфера приостанавливается.

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

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

Woper = млх^, ^),

где Lw - среднее число событий в демпфирующем буфере при номинальном потоке входных событий; Nw - максимальное число одновременно обрабатываемых вторичных событий.

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

4 Стратегия заполнения заблаговременно загружаемого буфера

Для кэш-памяти Wfreq частых событий используется специальный алгоритм, базирующийся на учете фактической частоты появления событий. Его основные отличия от классического £РЦ^-алгоритма [7] таковы:

- частоты событий определяются по предыстории использования информации в предыдущих сеансах работы;

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

Рассмотрим подробнее алгоритм заполнения буфера. Анализ ретроспективы заключается в подсчете записей об однотипных событиях в протоколе работы системы на заданном интервале времени t. При этом формируется список, где для каждого типа событий evt(i) указывается его количество п^О, фактические частота ) и вероятность свершения P(i):

fevt(i) = П^О / г , Р(0 = nevt(i) /,

где - общее число событий на рассматриваемом интервале времени.

Предположим, что для контролируемой системы определены Дг^тах типов событий. В системе сбора данных имеется кэш-буфер размером Wfreq, < Д^_тах. Для его обслуживания заводится служебная очередь несколько большего размера (на Wpot = 10.20%). В ее основной части хранятся данные

о фактических частотах и количестве свершений для событий fevt(i), хранимых в буфере Wfreq. В избыточную часть очереди (^ра) заносятся сведения о кандидатах на попадание в кэш. Содержимое служебной очереди, дата последнего анализа и общее число событий (Д^) составляют сохраняемую интегральную оценку. Ее изменение происходит в следующем порядке:

1. Анализируется ретроспектива накопленных (новых) событий. Формируется их упорядоченный перечень с указанием количества свершений каждого события пт() и их общего числа Д^.

2. Запоминается минимальное число свершений событий в имеющейся предварительной очереди. Это параметр последнего элемента по результатам предыдущего анализа, Дтт=М1К(петХ0), i=1... Wfreq.

3. Согласно новым данным, увеличиваются количества свершений соответствующих событий из основной и предварительной очередей. Увеличивается общее число событий. События в очереди сортируются согласно воз-

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

4. Для оценки качества функционирования кэш-памяти рассчитываются три вспомогательных параметра: у, у', у" - отношения к общему количеству событий для успешных обращений к буферу, к буферу и предварительной очереди и к укороченному буферу соответственно:

1 Wfreq 1 Wfreq +Wpot ■. Wfreq —Wpot

^ 0'Х У' = т;- X п^г 0'Х У'' = д- X ^(i),

1 1 1

где п^Ц) - количество свершений события evt(i); - размер буфера; Wpot -

размер очереди кандидатов на попадание в буфер.

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

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

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

6. Рассчитываются фиктивные частоты свершения новых событий. Для этого количества их свершений увеличиваются на ранее зафиксированное минимальное число свершений из предварительной очереди (см. п. 2):

nevt (О' nevt(j') + Дтт , i^ {Nfreq + 1- • - Дро^.

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

8. По содержимому служебной очереди определяется состав заблаго-

временно загружаемых событий. Время анализа, содержимое очереди Пеу^^ + Wpро) общее количество событий параметры у, у', у" сохраня-

ются на НЖМД для последующего использования.

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

Рассмотрим теперь порядок адаптивного регулирования размера кэша для хранения обработчиков частых событий. Минимальный размер Wfreq тт устанавливается при разработке программного обеспечения 50.100 элементов и более. Максимальный размер ^^_тах лимитируется двумя факторами: числом событий в контролируемой системе и объемом ОЗУ, выделяемого для работы 5СЛ,ОЛ-системы. Критерием эффективности буфера служит оценка доли попавших в него «частых» событий. Для оценки используются упомянутые выше параметры у, у', у'' - оценки доли успешных обращений к имеющемуся, расширенному и сокращенному буферу соответственно.

Суть адаптивной регулировки сводится к расчету и анализу изменения эффективности буфера при увеличении и уменьшении его размера (Щ-гед) на определенное число позиций - в размере предварительной очереди (Жро) Для этого рассчитываются два показателя эффективности изменения буфера:

Бир = У' - У , Олп = у - у''.

Затем указанные показатели сравниваются с пороговой величиной изменения эффективности, для оценки необходимости изменения размера. Условие увеличения размера буфера:

Бир > Ке(Жро1 / Ж/гщ).

Условие уменьшения размера буфера:

Бс1п < Ке(Жрог/ Wfreq),

где эмпирический коэффициент Ке ~ (0,1.10) с типичным значением Ке = 2 позволяет задать долю частых событий, загружаемых в буфер. Фактически указанный коэффициент Ке = ^у / <ЗЖ определяет угол наклона касательной к некоторой точке на кривой плотности распределения вероятности событий, измеренных в контролируемой системе. Эта точка разделяет события (по частоте свершения) на две области - редких и частых событий соответственно. На рис. 4 показаны эти области на примере распределения частот:

Х,=а / (а+/)2, =1, ...,М, где а - характеристическая константа; М - максимальное количество событий.

2,50Е-02 2,00Е-02 1,50Е-02 1,00Е-02 5,00Е-03 0,00Е+00

■ 1 ■ = 100 ■= 1000

1 1 1 1 1 1 1 1

1Я111

0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 /

Рис. 4 Пример разделения событий на группы частых и редких

Для наглядности, изображены два графика распределения с характеристическими параметрами / = 100, / = 1000 соответственно (рис. 4). При одинаковом коэффициенте Ке = 1,0 (угол касательной 135°) на первом графике штриховкой выделена область редких событий, а на втором - частых событий.

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

= 200; Жр01 = 20; = 1000; у = 500/1000; у' = 550/1000; у" = 400/1000;

Ке = 2; Бир = 0,55 - 0,5 = 0,05, Вйп = 0,5 - 0,4 = 0,1; Жр0ЩГеЧ = 20/200 = 0,1;

Бап = 0,05 < 2,0 • 0,1 (условий для увеличения размера буфера нет);

Ddn = 0,1 < 2,0 • 0,1 (условие уменьшения размера буфера выполняется).

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

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

H(n) = Tr(n)/Tr(0),

где Tr(0) - удельное время обработки одного события в системе сбора данных при отсутствии кэш-памяти (0 % попаданий); Tr(n) - удельное время при n % попаданий.

Индекс эффективности Y(n) - отношение прироста производительности к доле успешных попаданий - определялся как

Y(n) = H(n)/n.

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

Заключение

Описанная в статье структура обработки и методика кэширования данных в SCADA -системах использована в ряде промышленных программных продуктов. В частности в программном комплексе «Графика-АДС» из состава ПО версии 5 для комплекса технических средств «Энергия» [8]. Эффективность предложенных решений подтверждена многолетней практической эксплуатацией.

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

1. Фритч, В. Применение микропроцессоров в системах управления : пер. с нем. / В. Фритч. - М. : Мир, 1984. - 464 с.

2. Блэкман, Р. Проектирование систем реального времени : пер. с англ. / Р. Блэкман. - М. : Мир, 1982. - 384 с.

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

4. Hoffmann, D. Temperaturmessungen und Temperaturregelunngen mit Beruhrung-sthermometern / D. Hoffmann. - Berlin : VEB Verlag Technik, 1977.

5. Bergholz, G. Zur Bestimmung der Reaktionsszeit von Prozessrechenanlagen / G. Bergholz // Wiss. Z. Techn. Univ. Dresden. - 1975. - V. 24. № 3/4. - S. 563-570.

6. Kaplan, K. R. Cache-Based Computer Systems / K. R. Kaplan, R. O. Winder // Computer. - 1973. - Mar. - Р. 119-137.

7. Кохонен, Т. Ассоциативные запоминающие устройства : пер. с англ. / Т. Кохо-нен. - М. : Мир, 1982. - 384 с.

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

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