МЕТОДИКА ЭКСПЕРИМЕНТАЛЬНОГО ОПРЕДЕЛЕНИЯ СЕТЕВЫХ ХАРАКТЕРИСТИК КОММУНИКАЦИОННОГО УЗЛА.
Л.И. Абросимов, Е.В. Кокорина, М.А.Трущенко
(г. Москва, Московский энергетический институт (Технический Университет) Россия)
Коммуникационный узел (КУ)
вычислительной сети (ВС) – это устройство, выполняющее функции транспортного,
сетевого и канального уровня, которое реализовано на базе IBM PC, функционирующей под управлением ОС Linux.
Целью исследований является
определение количественных значений сетевых характеристик коммуникационного
узла, которые являются базовыми понятиями при определении производительности
вычислительной сети.
В соответствие с
детализированной моделью КУ, чтобы получить и , где , - первый и второй момент времени обслуживания транзакций в КУ
для каждого контура , необходимо знать значения базовых параметров
производительности (БПП).
Проблема определения БПП состоит
в том, что измерять характеристики для любого КУ можно только в реальном
времени выполнения программных функций. В соответствие с этим, предложена
методика экспериментального определения сетевых характеристик КУ, включающая в
себя следующие этапы:
1) Обоснование состава параметров в модели.
2) Обоснование состава измеряемых параметров
(функций).
3) Выбор инструментальных средств и их параметров
настройки.
4) Настройка инструментальных средств.
5) Сбор «сырых» измеренных параметров.
6) Обработки измеренных параметров для получения
параметров модели.
Приведем пояснения к
предложенной методике.
Этап 1. Обоснование состава параметров в модели.
Одним из главных и самым важным из параметров при
описании характеристик модели КУ является интенсивность µ обслуживания сетевых
транзакций в КУ, равная усреднённому количеству транзакций, обслуженных в
единицу времени.
Для определения µ, необходимо знать время t0 обслуживания сетевых
транзакций КУ. Исходя из этого, предложенная методика должна дать возможность замерить
временные интервалы событий, происходящих как на уровне пользователя, так и на
уровне ядра системы, где и происходит непосредственно сетевая обработка.
Этап 2. Обоснование
состава измеряемых функций.
Для экспериментального определения сетевых характеристик КУ выбраны, стандартные средства, с помощью которых можно осуществить замер временных интервалов как уровня пользователя, так и уровня ядра, а именно: Linux trace toolkit-0.9.5а (LTT); Kernprof 2. 5 (Kernprof); Dynamic Probes (DProbes).
LTT - это набор инструментов, разработанных для того,
чтобы извлечь детали
выполнения программы из ОС Linux и интерпретировать их. LTT позволяет исследователю извлечь данные об
использовании процессора в течение
некоторого периода времени, выполнить различные вычисления по этим данным и
вывести их в текстовый файл. Список исследованных событий может также быть
включен в него. Однако данный программный продукт обеспечивает получение
информации относительно динамического поведения ядра и некоторых из основных подсистем
ядра, но LTT не является средством исследования ядра.
LTT предназначен, чтобы
обеспечить исследователей информацией относительно динамического поведения их
системы, но любое более глубокое исследование ядра будет требовать
специализированных инструментальных средств, типа отладчиков.
Kernprof управляет профайлингом
ядра и генерирует отчет. Данные о профайлинге
записываются в файлы данных, которые
обрабатываются с помощью gprof. Профилирование позволяет изучить, где программа
расходует свое время, и какие функции вызывали другие функции, пока программа
исполнялась.
DProbes - настраиваемое средство динамической отладки,
которое может быть использовано для углубленного изучения работы ядра. DProbes предлагает
технику для сбора отладочной информации и имеет высокую вероятность успешного
результата. DProbes позволяет вставку полностью
автоматизированных контрольных точек в системе или пользовательском
пространстве.
Этапы
3,4. Выбор
параметров и настройки инструментальных средств.
Для проведения экспериментов на КУ DProbes компилируется совместно с определенными вариантами
конфигурации, чтобы позволить ему работать с LTT. Исследователь
предварительно проводит конфигурирование и компиляцию ядра (для получения
данных с помощью LTT), чтобы загрузить в ядро Kernel Patch.
Далее инсталлируются Trace deamon и Data decoder tracevisualizer. Далее создается специальное символьное
устройство, интерфейс пользовательского уровня к ядру Kernel module,
запускаются команда ping и трассировщик tracevisuelizer.
Этап 5. Сбор «сырых» измеренных параметров. Трассировка и
сбор данных начинается со старта Trace deamon, который фиксирует события. С помощью Trace daemon осуществляется сбор «сырых» данных, которые затем
обрабатываются и визуализируются с помощью Data decoder tracevisualizer. Фрагмент файла результатов
работы LTT приведен на рисунке 1.
Рисунок 1 -
Фрагмент файла результатов работы LTT.
Приведем пояснения каждого поля.
- Event – имя
зафиксированного события (функции);
- Time – временная
отметка; для текущей функции это время ее окончания, т.е. чтобы вычислить время
выполнения функции необходимо из этого значения вычесть значение
временной отметки для предыдущей функции;
- PID – идентификатор текущего процесса;
- Length – длина;
-Description –
описание вызова зафиксированной функции.
Таким образом, LTT осуществляет трассировку
уровня пользователя с указанием точных временных отметок моментов нахождения в
ядре (IN KERNEL) и предоставляет удобный
формат визуализации результатов.
Результатом
анализа является файл, содержащий две таблицы - "Простой профиль"
("flat profile")
и "Граф вызовов" ("call graph"), а также замечания, кратко объясняющие содержимое
этих таблиц. Программа записывает данные о профиле в файл, именуемый gmon.out перед самым
завершением. После получения файла gmon.out с данными
о профиле, можно запустить команду gprof, чтобы
проинтерпретировать информацию из него. Программа gprof
выводит простой профиль и граф вызовов на стандартный вывод.
Kernprof позволяет получить список вызываемых в ядре функций, т.е. исследовать уровень ядра.
Этому условию удовлетворяет режим Annotated Call Graph, поэтому подробно будут
рассмотрены результаты для этого режима.
Формат файла с результатами работы Kernprof в режиме Annotated Call Graph представлен на рисунке 2.
Рисунок 2 - Формат файла с результатами
работы Kernprof в режиме Annotated Call Graph.
Этап 6. Обработка измеренных параметров для получения
параметров модели.
o Предложенная методика
экспериментального определения сетевых характеристик КУ проверена на тестовых
примерах и позволяет замерять временные отметки всех происходящих в системе
событий.
o С помощью совместного
использования программных средств получен
единый файл результатов, позволяющий увидеть полную картину «сквозной» трассировки
пользовательского уровня и уровня ядра, для обеспечения универсального рассмотрения ОС Linux
при исследовании сетевых характеристик коммуникационного узла на базе IBM PC.
o Подсчитав временные
интервалы, вычисляем время обслуживания t0 сетевых транзакций и далее
определяем интенсивность обслуживания µ сетевых транзакций в КУ, равную
усреднённому количеству транзакций, обслуженных в единицу времени.
ЛИТЕРАТУРА
1. Абросимов Л.И. Основные положения теории
производительности вычислительных сетей // Вестник МЭИ. 2001 №4.С. 70-75