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

 

Л.И. Абросимов, Е.В. Кокорина, М.А.Трущенко

 

(г. Москва, Московский энергетический институт (Технический Университет) Россия)

 

 

 

 

Коммуникационный узел (КУ) вычислительной сети (ВС) – это устройство, выполняющее функции транспортного, сетевого и канального уровня, которое реализовано на базе 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.

 

Блок-схема: документ: Flat profile:

Each sample counts as 1e-05 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  us/call  us/call  name    
 84.49      0.60     0.60                             huft_build
  8.02      0.65     0.06     6527     8.70     8.79  exit_notify
  1.66      0.67     0.01                             pm_send
  1.63      0.68     0.01                             read_zero
  0.38      0.68     0.00    10240     0.27     0.27  zlib_inflate_flush
. . .
Call graph (explanation follows)

granularity: each sample hit covers 4 byte(s) for 0.00% of 0.71 seconds

index % time    self  children    called     name
                                 5439180         huft_build [1]
[1]     84.5    0.60    0.00       0+5439180     huft_build [1]
                0.00    0.00     509/529         pm_send_all [95]
                0.00    0.00     509/1046        mxt_clear_virtpage [120]
                                 5439180             huft_build [1]
-----------------------------------------------
                0.00    0.00       3/6527        init_timervecs [70]
                0.00    0.00     242/6527        IRQ0x49_interrupt [16]
                0.00    0.00     418/6527        acpi_system_read_sleep [11]
                0.05    0.00    5864/6527        do_double_fault [3]
[2]      8.1    0.06    0.00    6527             exit notify [2]
                0.00    0.00    5838/11550       do_exit [23]
                0.00    0.00      29/29          tcp_rcv_state_process [103]
-----------------------------------------------
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


         Рисунок 2 - Формат файла с результатами работы Kernprof в режиме Annotated Call Graph.

 

Этап 6. Обработка измеренных параметров для получения параметров модели.

o       Предложенная методика экспериментального определения сетевых характеристик КУ проверена на тестовых примерах и позволяет замерять временные отметки всех происходящих в системе событий.

o       С помощью совместного использования программных средств получен единый файл результатов, позволяющий увидеть полную картину «сквозной» трассировки пользовательского уровня и уровня ядра, для обеспечения  универсального рассмотрения ОС Linux при исследовании сетевых характеристик коммуникационного узла на базе IBM PC.

o       Подсчитав временные интервалы, вычисляем время обслуживания t0 сетевых транзакций и далее определяем интенсивность обслуживания µ сетевых транзакций в КУ, равную усреднённому количеству транзакций, обслуженных в единицу времени.

 

ЛИТЕРАТУРА

1.       Абросимов Л.И. Основные положения теории производительности вычислительных сетей // Вестник МЭИ. 2001 №4.С. 70-75