BC/NW 2015 № 2 (27):6.2
РАЗРАБОТКА МАКЕТА ВЫЧИСЛИТЕЛЬНОГО КОМПЛЕКСА ДЛЯ ИССЛЕДОВАНИЯ ФУНКЦИОНАЛЬНЫХ ХАРАКТЕРИСТИК
Абросимов Л.И., Арутюнян Ш.Ш.
Одной из главных задач при разработке вычислительных комплексов (ВК) является спроектировать его так, чтобы комплекс работал с максимально возможной эффективностью. Однако решение данной задачи очень трудоемко, поскольку современные многомашинные комплексы являются сложными неоднородными системами, которые состоят из аппаратных компонентов таких как: каналы связи, вычислительные устройства, устройства хранения данных и программных, например операционная система. В таких системах взаимодействие устройств разделяется на прием и передачу различных данных.
Эффективность функционирования многомашинного вычислительного комплекса определяется различными показателями, такими как: производительность, надежность, качество обслуживания, время обработки, скорость передачи данных в коммуникационной среде. Основными параметрами для оценки эффективности системы являются:
· длина пакета с заданием;
· интенсивность поступления пакетов с заданиями
· скорость канала;
· законы распределения времени обработки заданий прикладной программой в ВК;
· законы распределения интервалов времени обработки заявок в системе.
Таким образом, для определения необходимой производительности и эффективности ресурсов узлов МВК, затрачиваемых на обработку заявки, необходимо экспериментальное определение вероятностно-временных характеристик ЭВМ. Зная все вышеперечисленные параметры можно с большой точностью определить поведение комплекса в рабочих условиях и рассчитать его возможности.
Постановка задачи
Задача определения вероятностно-временных характеристик ЭВМ для расчета его производительности и эффективности может быть сформулирована следующим образом.
Исследуется однопроцессорная ЭВМ, обрабатывающая поступающие на нее заявки. Доставку заявок обеспечивает клиент, подключенный посредством канала связи. Требуется с помощью средств измерений работающей Linux-системы определить функциональные характеристики ЭВМ, в зависимости от параметров поступающих заявок.
Средства измерений
Основным инструментом для анализа работающей Linux-системы выбран Systemtap, который представляет собой интерфейс командной строки и скриптовый язык. Он осуществляет мониторинг системных событий и в случае наступления какого-либо события назначает для него обработчика события.
В качестве событий могут выступать, например, начало или конец сессии Systemtap, срабатывание таймера и т.п. Обработчиком события называется последовательность скриптовых операторов, которые выполняются, когда событие срабатывает. Обычно обработчики событий вычленяют информацию из контекста события или выводят ее на консоль. Главным преимуществом SystemTap является возможность написания скриптов на языке программирования C, что обеспечивает более гибкое управление обработчиками.
Экспериментальный стенд основан на модели одноканальной СМО M/M/1, состоящей из двух ЭВМ, работающих под управление ОС Linux и соединенных utp кабелем. Первая ЭВМ играет роль клиента, генерирующего заявки (пакеты размером 1500 байт), вторая ЭВМ является сервером, который принимает и обрабатывает данные заявки. (см.рис.1)
Рис.1 Схема стенда.
На клиенте заявки формируются через определенный промежуток времени – θ, который задается заранее запущенным генератором случайных величин. При этом каждой заявке ставится в соответствие число циклов сложения – τ, которое также задается генератором. Данное число записывается в поле данных заявки и определяет время обслуживания заявки на сервере.(см.рис 2)
Рис .2 Схема обработки заявок.
На сервере установлены программные средства для измерения времени обработки заявки: измерительный комплекс SystemTap и программные зонды Kprobes. После обработки сервер отправляет результат обратно клиенту.
На начальном этапе происходит определение состава подпрограмм участвующих в обработке и отправке пакетов и нахождение адресов вызовов и возвратов данных подпрограмм. На основе данных адресов устанавливаются зонды на интересующие нас подпрограммы. На следующем этапе строится граф вызываемых подпрограмм, на основании которого определяются цепочки приема и отправки пакета.
Следующим шагом является определение ВВХ подпрограмм. Нахождение ВВХ производится путем вычитания математического ожидания вызываемых подпрограмм из математического ожидания вызывающих. Для проведения экспериментов используется выборка, состоящая из подпрограмм стадий, цепочек и подпрограмм множеств с 0-ой и 1-ой ОГВ (относительная глубина вложенности). После определения выборки для исследования производится установка зондов на выбранные подпрограммы. Для этого используется разработанный аспирантом Крамаренко модуль ядра ОС Linux и адреса вызовов и возвратов подпрограмм определенных ранее. В результате будут получены файлы, содержащие временные отметки вызова и возврата, а так же значение программного счетчика прерываний.
Проведение экспериментальных измерений характеристик на стенде, будут проходить по различным сценариям исследований. Под сценариями подразумеваются алгоритмы проведения определенного количества экспериментов или по-другому серий на тестовом стенде.
Первый сценарий проводится для тестирования стенда. Для этого сценария поток заявок будет с упорядоченной очередью и регулярным, так как заявки следуют одно за другим через строго определенные промежутки времени θ=1сек. При этом заявки будут содержать значение циклов сложений τ, образующих набор нормально распределенных случайных чисел. В результате эксперимента должен получиться выходной поток, определяющий время обработки заявок, который также образует набор нормально распределенных чисел. По результатам данного сценария можно будет сделать выводы о работоспособности экспериментального стенда.
Второй сценарий предполагает использование случайного потока заявок, при котором заявки формируются в случайные моменты времени θ. При этом заявки будут содержать значение циклов сложений τ, образующих набор показательно распределенных случайных чисел. Выходной поток данной модели также должен образовывать данный набор чисел.
На основании первого сценария было проведено 30 экспериментов по отправке 1000 пакетов через постоянный интервал времени θ=1сек. с нормальным распределением циклов сложений τ в тиках.
В результате было получено 526 подпрограмм участвующих в обработке пакетов. Из дерева вызовов подпрограмм были выделены функции (цепочки), отвечающие за прием и отправку пакетов, при этом было учтено, что пакеты в нашем случае передаются по протоколу транспортного уровня UDP. За стадию приема отвечает функция канального уровня rtl8139_poll , за стадию отправки отвечает функция транспортного уровня inet_sendmsg. Таким образом, зонды были установлены именно на эти функции.
В результате были получены математическое ожидание и дисперсия времени при приеме () и отправке (). На основании [2] будем учитывать, что для однопроцессорного ЭВМ, операция сложения проходит за один такт (тик), учитывая данный факт можно сделать вывод, что общее время обработки равна = + + τ, при этом учитывается ВВХ зонда, а именно математическое ожидание равное 4890 тикам, расcчитанное ранее, магистром Гончаренко. Полученные результаты показаны в таблице 1.
Таблица 1
|
159906,6915 тик |
|
567565609 |
|
134333655 |
|
108617,8615 тик |
= + |
268524,553 тик |
|
567863,147 тик |
По полученному набору интервалов времени обработки каждой заявки, видно, что он образует цепочку равномерно распределенных чисел, что говорит о работоспособности стенда.
Так же, используя результаты таблице 1, можно рассчитать интенсивность обслуживания пакетов ядром ОС Linux на исследуемой ЭВМ:
Из таблицы можно сделать вывод, что математическое ожидание времени затраченного ОС на ретрансляцию заявки практически равно математическому ожиданию времени (299338,614) обслуживания данной заявки, заданное нами циклами сложения, что подтверждено экспериментально.
Литература
1. Абросимов Л. И., Крамаренко М. Д., Гончаренко О. С. ЛАБОРАТОРНАЯ РАБОТА ПО ИССЛЕДОВАНИЮ ВЕРОЯТНОСТНО-ВРЕМЕННЫХ ХАРАКТЕРИСТИК ПРОКСИ-СЕРВЕРА BC/NW №2 2015 (27):15.1