BC/NW 2013: № 2 (5.1)
РАЗРАБОТКА МЕТОДИКИ ИЗМЕРЕНИЯ ЧИСЛЕННЫХ ЗНАЧЕНИЙ ПАРАМЕТРОВ ПРОКСИ-СЕРВЕРА
Л.И. Абросимов, М.Д. Крамаренко
Национальный исследовательский институт «МЭИ»
1. Введение
Возрастающий объем мультимедийного трафика, информация которого обрабатывается в реальном времени, требует согласования интенсивности трафика с производительностью вычислительной сети.
В соответствии с предложенной концепцией [1] вычислительная сеть (ВС) - это техническая система, содержащая компьютеры, соединенные коммуникационными устройствами и каналами связи, которая обеспечивает дистанционное выполнение информационно-вычислительных работ пользователей.
Одной из основных характеристик эффективности функционирования ВС является производительность, которая должна оцениваться общим количеством выполненных информационно-вычислительных работ.
Для обработки транзакции в компьютере и в коммуникационном устройстве требуется выделение вычислительного ресурса на время выполнения необходимого количества вычислительных операций. Таким образом, обработку транзакции любой формы можно характеризовать инвариантной характеристикой - временем нахождения транзакции в обслуживающем узле.
Обслуживающий узел - это модель устройства ВС, свойства которого описываются параметрами и соотношениями, которые соответствуют моделям систем массового обслуживания транзакций с очередями.
Обрабатывающие модули, временно сосредотачивающие ресурсы узла для обработки транзакции, назовем элементами обслуживающего узла .
Производительность элементов ВС оценивается набором интервалов времени {}, которые затрачивает каждый элемент каждого обслуживающего узла при обработке транзакции соответствующего типа.
Производительность узла ВС оценивается математическим ожиданием времени и интенсивностью обработки каждым обслуживающим узлом транзакции соответствующего типа.
2. Математическая модель прокси-сервера [2]
Прокси-сервер является сложным аппаратно-программным комплексом, представляющим собой специализированную ЭВМ. Для определения производительности ЭВМ важнейшими характеристиками являются тактовая частота f процессора и емкость С оперативной памяти ЭВМ.
Для измерения интервалов времени в ЭВМ, в зависимости от аппаратного обеспечения, могут быть использованы различные счетчики-таймеры. Точность определения времени при помощи таймера-счетчика характеризуется частотой срабатывания таймера.
В качестве единицы времени, определяющей длительность выполнения программ, в настоящем исследовании выбирается тик, равный времени периода увеличения значения таймера-счетчика на единицу, и зависящий от конкретной реализации и настроек таймера-счетчика.
Построение функциональной модели прокси-сервера позволило:
Во-первых, разработать математические модели в виде расчетных соотношений, позволяющих использовать характеристики производительности {}, элементов каждого узла , входящего в подмножество , для определения интенсивности обработки каждым обслуживающим узлом транзакции соответствующего типа.
Во-вторых, провести экспериментальные исследования по определению численных значений вероятностно-временных характеристик прокси-сервера, характеризующих его производительность, а именно, наборы интервалов времени {}, которые затрачивает каждый элемент , учитывающих особенности ОС при выполнении сетевой обработки и технические характеристики аппаратной реализации.
На основании проведенного анализа недостатков базовой функциональной модели и возможностей функций ОС Linux предлагается в детализированной функциональной модели прокси-сервера в качестве элемента рассматривать каждую функцию ОС Linux.
Каждому элементу соответствует время , следовательно, для оценки производительности узла необходимо алгоритм функционирования ОС Linux представить как алгоритм взаимодействия элементов . Для учета особенностей обработки пакета протоколами различных уровней, выделим подмножество элементов (), соответствующих функциям протокола . Каждое из подмножеств в свою очередь состоит из подмножеств элементов, участвующих в обработке пакета на различных стадиях s обработки пакета ( ).
Взаимодействие каждого подмножества элементов определяется алгоритмом , описывающим взаимодействие элементов . Учитывая особенности выполнения алгоритма , можно разделить его на 8 частей - .
На стадии приема (s=1) выполняются - .
- включает элементы канального (2-го) уровня, которые выполняют протоколы , где множество протоколов канального уровня, реализованных в ОС прокси-сервера.
- включает элементы сетевого (3-го) уровня, которые выполняют протоколы , где множество протоколов сетевого уровня, реализованных в ОС прокси-сервера.
- включает элементы транспортного (4-го) уровня, которые выполняют протоколы , где множество протоколов транспортного уровня, реализованных в ОС прокси-сервера.
- включает элементы сессионного (5-го) уровня, которые выполняют протоколы , где множество протоколов сессионного уровня, реализованных в ОС прокси-сервера.
На стадии передачи (s=2) выполняются - .
- включает элементы сессионного (5-го) уровня, которые выполняют протоколы , где множество протоколов сессионного уровня, реализованных в ОС прокси-сервера.
- включает элементы транспортного (4-го) уровня, которые выполняют протоколы , где множество протоколов транспортного уровня, реализованных в ОС прокси-сервера.
- включает элементы сетевого (3-го) уровня, которые выполняют протоколы , где множество протоколов сетевого уровня, реализованных в ОС прокси-сервера
- включает элементы канального (2-го) уровня, которые выполняют протоколы , где множество протоколов канального уровня, реализованных в ОС прокси-сервера.
Следовательно, для узла производительность оценивается: кортежем математических ожиданий времени, которое затрачивает каждый обслуживающий узел при обработке протоколом транзакции соответствующего типа, и кортежем интенсивностей обработки протоколом на стадии s.
В детализированной функциональной модели прокси-сервера на стадии s имеем сложный алгоритм с циклами, последовательными и параллельными участками обработки. Для определения вероятностно-временных характеристик каждую из частей - алгоритма можно преобразовать в последовательные цепочки (r=), состоящие из набора элементов , каждому из которых поставлено в соответствие и (где -коэффициент, учитывающий повторяемость выполнения элементов .
Таким образом, время обработки пакета узлом определяется следующим соотношением:
= () + () + () +() + () + () + () + () (1)
В выражении (1) каждое слагаемое соответствует обработке пакета элементами цепочки (r=).
3.Методика измерения численных значений параметров прокси-сервера
Основной задачей методики является экспериментальное определение численных значений параметров производительности выполнения ПО прокси-сервера для последующего использования в расчете производительности прокси-сервера.
Предлагаемая методика включает в свой состав следующие этапы:
- разработку концепции измерений, основанной на использовании программных зондов;
- определение состава аппаратных средств, исследуемого объекта;
- определение состава измеряемых параметров;
- выбор измерительных средств;
- разработку измерительного комплекса;
- определение точки установки зондов;
- разработку и настройку стенда для проведения натурных измерений;
- разработку сценариев проведения экспериментальных исследований;
- определения требуемых временных параметров по результатам экспериментальных измерений;
3.1 Концепция измерений
Исследуемым объектом является прокси-сервер, реализованный на базе однопроцессорной персональной ЭВМ. В качестве настроек системы рассматриваются: частота генератора; значение делителя частоты процессора; частота работы шины памяти; частоту работы шины периферийных устройств. Круг исследуемых ОС ограничивается широким классом UNIX-подобных операционных систем. Для выбранного класса ОС производительность работы ЭВМ особенности функционирования ПО определяют: название дистрибутива ОС; версия ядра. Для измерения параметров используются программные зонды, фиксирующие измеряемые интервалы при помощи высокоточного аппаратного счетчика, работающего на фиксированной частоте и позволяющего измерять время в тиках.
3.2 Состав аппаратных средств, исследуемого объекта
Для проведения исследований используются два узла: генератор пакетов и прокси-сервер.
3.3 Состав измеряемых параметров;
Основные параметры математической модели, используемые при измерениях являются :
– цепочки узла i, r= характеризующие протоколы обработки;
– j-тый элемент цепочки r, узла i;
– время обслуживания транзакции или её компонента j-тым элементом , цепочки r, узла i;
– коэффициент повторяемости j-того элемента цепочки r узла i;
{} – коэффициенты мультиплексирования r-той цепочки.
Среди перечисленных параметров, коэффициенты мультиплексирования являются заданными величинами, определяющимися при помощи типа транзакции.
Цепочки узла являются набором функций, выполняемых при обработке транзакции определенным протоколом. Набор функций определяется реализациями, характерными для обработки протоколом транзакции заданного типа.
3.4 Измерительные средства
Измерительные средства делятся на аппаратные и программные. Аппаратные средства – это набор таймеров и счетчиков, находящихся внутри ЭВМ. Программные измерительные средства реализуются в виде прикладного или системного ПО и реализуют функции контроля за ходом выполнения исследуемого процесса и формирования отчета согласно данным аппаратных средств и данных о состоянии процесса. Для проведения измерений используется комплекс включающий как аппаратные, так и программные средства.
3.5 Измерительный комплекс
Измерительный комплекс (ИК) состоит из программных зондов, фиксирующих критические точки выполнения исследуемого процесса, программы обработчика данных с зондов, занимающейся выполнением необходимых вычислений и/или формированием отчетов и аппаратных счетчиков/таймеров, выполняющих непосредственные измерения. Типовая схема функционирования ИК представлена на рис. 1.
НКБ
Рис. 1. Типовая схема функционирования ИК
· ИЗ1, ИЗ2, ИЗ3 – интервал выполнения зондов 1, 2 и 3;
· ИИП – интервал выполнения исследуемой программы;
· ИНО – интервал выполнения программы обработчика данных с зондов;
· ИП – интервал времени работы планировщика задач ОС Linux;
· НКБ – не блокирующийся кольцевой буфер;
· 1, 2, 3 – страницы НКБ, в которых соответственно хранятся данные первого, второго и третьего зонда;
· t – ось времени;
· стрелками обозначена запись и считывание данных из кольцевого буфера.
Основными характеристиками ИК являются точность измерений и накладные расходы, вносимые зондами в исследуемый процесс. На текущий момент в ОС Linux существует несколько реализаций ИК с использованием программных зондов. Среди основных реализаций ИК можно выделить Kprobes и Ftrace. Однако оба средства позиционируются как средства отладки и не обладают достаточной точностью для проведения достоверных измерений. Что говорит о необходимости разработки средства, учитывающего достоинства динамической трассировки и недостатки точности измерений выше упомянутых средств.
3.6 Точки установки зондов
Одной из важнейших задач является выявление критических точек выполнения процесса обработки сетевых транзакций. Весь процесс выполнения обработки можно разбить на выполнение определенного набора подпрограмм, представляющих элементы модели, тогда критическими точками будут являться точки входа и точки выхода из соответствующих подпрограмм. Определение наборов подпрограмм характерных обработке сетевых транзакций представляются задачей процесса профилирования исследуемого процесса.
3.7 Стенд для проведения натурных измерений
Для проведения экспериментов разработан стенд, состоящий из:
- генератора – ЭВМ выполняющая посылку транзакций заданного типа;
- прокси-сервера – ЭВМ, занимающаяся ретрансляцией транзакций, на данной ЭВМ производятся необходимые измерения;
- получателя – ЭВМ, выполняющая обработку транзакции и посылающая ответ генератору.
На всех ЭВМ в качестве ОС установлен Linux дистрибутив Fedora Core 14.
3.8 Сценарии проведения экспериментальных исследований
В соответствии с выбранными измерительными программными средствами и методикой расчета объема выборки реализованы четыре сценария проведения экспериментов: сценарий определения погрешности, вносимой зондом; сценарий определения реализаций, функций и частот повторяемости функций; сценарий определения точек выхода функций; сценарий определения временных интервалов выполнения отобранных функций.
3.9 Определение требуемых временных параметров по результатам экспериментальных измерений
В результате проведения таких экспериментов на выходе получаются файлы содержащие адрес функции в оперативной памяти, название функции, и временную метку выполнения функции. Посредством анализа из данного листинга определяются реализации и производится вычисление времен выполнения каждой из функций полного списка функций, участвующих в обработке выбранного типа транзакции.
4. Результаты измерений
Выполненные измерения позволили установить:
- для обработки входящих UDP датаграмм ОС Linux использует 80 уникальных функций;
- для обработки исходящих UDP датаграмм ОС Linux использует 123 уникальные функции;
- при обработке входящих и исходящих датаграмм обработка происходит при помощи 3 реализаций, одна из которых характерна только для первого эксперимента и может быть отнесена к методической погрешности; для приема UDP датаграмм две оставшиеся реализации отличаются на 1 функцию, оценка вероятности появления каждой из реализаций ½.
- для посылки UDP датаграмм набор функций реализации является постоянным, изменяется лишь порядок выполнения для одной функции;
- для стадии приема(s=1; - ) UDP датаграмм среднее количество выполняемых функций n1 = 100,5;
- для стадии передачи (s=2; - .) UDP датаграмм среднее количество выполняемых функций n2 = 101.
- диапазон значений времени выполнения функций от 305,7 до 176663 тиков;
- статистическая обработка позволила построить гистограммы распределения времени выполнения всех функций;
- среднее время обработки стадии приема(s=1) UDP датаграммы 66,6 мкС;
- среднее время обработки исходящей UDP датаграммы 64,9 мкС.
Литература
1. Абросимов Л.И. Основные положения теории производительности вычислительных сетей. Вестник МЭИ 2001, №4, с. 70-75
2. Абросимов Л.И., Крамаренко М.Д. Функциональная и математические модели для оценки вероятностно-временных характеристик прокси-сервера Вестник МЭИ 2013, №3, с. 100-106
3. Статья «Прокси-сервер» http://ru.wikipedia.org/wiki/Прокси-сервер
4. Сетевой поток данных, обрабатываемый ядром. Network_data_flow_through_kernel http://www.linuxfoundation.org/images/1/1c/Network_data_flow_through_kernel.png