Russian Language English Language

3.Производительность вычислительных сетей

3.1 ТЕХНОЛОГИЯ ИЗМЕРЕНИЙ СЕТЕВЫХ ХАРАКТЕРИСТИК ПРОКСИ-СЕРВЕРА

3.2 ОЦЕНКА ПРАРМЕТРОВ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ ПО РЕЗУЛЬТАТАМ СТАНДАРТНЫХ ПРОМЫШЛЕННЫХ ТЕСТОВ ПРОИЗВОДИТЕЛЕЙ

3.3 ПОСТАНОВКА ЗАДАЧИ РАЗРАБОТКИ МОДЕЛЕЙ ВЫЧИСЛИТЕЛЬНОГО КОНВЕЙЕРА ДЛЯ МУЛЬТИМЕДИЙНОЙ ИНФОРМАЦИИ В КОРПОРАТИВНЫХ ЦЕНТРАХ ОБРАБОТКИ ДАННЫХI


Экспресс информация

Редколлегия журнала

Подписка на новости

Гостевая книга

Предоставление материалов

Письмо в редакцию

На начало


2014, Номер 1 ( 24)



Place for sale
BC/NW 2014 №1 (24):3

BC/NW 2014 №1 (24):3.1

 

ТЕХНОЛОГИЯ ИЗМЕРЕНИЙ СЕТЕВЫХ ХАРАКТЕРИСТИК ПРОКСИ-СЕРВЕРА

Абросимов Л.И., Крамаренко М.Д.

      Введение

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

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

Одной из основных характеристик эффективности функционирования ВС является производительность, которая должна оцениваться общим количеством выполненных информационно-вычислительных работ – транзакций [1].

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

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

Обрабатывающие модули, временно сосредотачивающие ресурсы узла для обработки транзакции, назовем элементами  обслуживающего узла .

Производительность элементов  ВС оценивается набором интервалов времени {}, которые затрачивает каждый элемент  каждого обслуживающего узла  при обработке транзакции соответствующего типа [2].

Производительность узла  ВС оценивается математическим ожиданием времени  и интенсивностью  обработки каждым обслуживающим узлом  транзакции соответствующего типа.

Основные положения методики измерений

Основной задачей методики измерений характеристик производительности является экспериментальное определение вероятностно-временных характеристик (ВВХ), включающих интервалы времени  и дисперсию  обработки каждым обслуживающим узлом  транзакций соответствующего типа [3]/

Численные значения измеренных ВВХ прокси-сервера могут использоваться при расчете его производительности.

Предлагаемая методика включает в свой состав следующие этапы:

- разработку концепции измерений, основанной на использовании программно-реализованных измерительных зондов (ИЗ);

- определение состава и функциональности аппаратных средств, исследуемого объекта;

- определение состава измеряемых параметров;

- выбор базовых измерительных средств;

- разработку специализированного комплекса измерительных средств (КИС);

- определение точки установки зондов;

- разработку и настройку стенда для проведения натурных измерений;

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

- определения требуемых временных параметров по результатам экспериментальных измерений.

 

Концепция измерений

Исследуемым объектом является прокси-сервер, реализованный на базе однопроцессорной персональной ЭВМ. В качестве настроек системы рассматриваются: частота генератора; значение делителя частоты процессора; частота работы шины памяти; частоту работы шины периферийных устройств.

Круг исследуемых ОС ограничивается широким классом UNIX-подобных операционных систем. Для выбранного класса ОС производительность работы ЭВМ особенности функционирования ПО определяют: название дистрибутива ОС; версия ядра.

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

 

Состав и функциональность аппаратных средств, исследуемого объекта

Измерительный стенд состоит из двух ЭВМ под управлением ОС Linux и соединенных кабелем типа «кроссовер». На первую ЭВМ установлена программа-генератор (G), осуществляющая посылку пакетов и прием пакетов ретранслированной программой прокси-сервера. На вторую ЭВМ установлены:

- программа прокси-сервер (П-ПР), которая принимает пакеты от программы-генератора и осуществляет отправку принятых пакетов обратно программе-генератору;

- разработанная программа комплекса измерительных средств (КИС).

Отправка и прием сообщений программами организованна по схеме «один за одним», при котором одни цикл работы программы-генератора (G) осуществляет отправку пакета и ожидает ответа программы прокси-сервера (П-ПР), после чего, цикл повторяется заданное количество раз. Программа прокси-сервера (П-ПР) ожидает приема пакета, после чего пересылает пакет обратно программе-генератору(G). Прием и отправка в совокупности образуют цикл работы программы прокси-сервера (П-ПР).

 

Состав измеряемых параметров

Основными параметрами математической модели, используемыми при измерениях являются [2]:

 – цепочки узла i, r= характеризующие протоколы обработки;

 – j-тый элемент цепочки r, узла i;

 – время обслуживания транзакции или её компонента j-м элементом , цепочки r, узла i;

 – коэффициент повторяемости j-го элемента цепочки r узла i;

{} – коэффициенты мультиплексирования r-й цепочки, которые определяются типом транзакции.

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

 

Базовые измерительные средства

Измерительные средства делятся на аппаратные и программные. Аппаратные средства – это набор таймеров и счетчиков, находящихся внутри ЭВМ. Программные измерительные средства реализуются в виде прикладного или системного ПО и реализуют функции контроля за ходом выполнения исследуемого процесса и формирования отчета согласно данным аппаратных средств и данным о состоянии процесса.

Для проведения измерений используется комплекс, включающий как аппаратные, так и программные средства, к которым следует отнести пакет SystemTap.

 

Специализированный комплекс измерительных средств (КИС)

Разработанный специализированный КИС состоит из программных зондов, фиксирующих критические точки выполнения исследуемого процесса, программы обработчика данных с зондов, занимающейся выполнением необходимых вычислений и/или формированием отчетов и аппаратных счетчиков/таймеров, выполняющих непосредственные измерения

Для измерения ВВХ цепочек и стадий необходимо замерить временные параметры выполнения подпрограмм, представляющих функции соответствующих стадий и цепочек. Для проведения измерений ВВХ выполнения подпрограмм разработан КИС, включающий модифицированные ИЗ. Схема взаимодействия КИС с символьным устройством представлена на рис. 1

Рис. 1 Схема взаимодействия КИС с модулем драйвера символьного устройства.

Модуль КИС является драйвером символьного устройства, поэтому для загрузки модуля КИС в ядро ОС Linux. необходимо воспользоваться стандартным инструментарием загрузки модулей ядра ОС Linux. В случае используемой версии и дистрибутива ОС таким средством является системная утилита insmod. Вызов утилиты insmod необходимо производить от имени учетной записи суперпользователя – root из программной оболочки ОС Linux, на экспериментальном стенде программной оболочкой является программа bash.

Установка модуля КИС при условии использования описанного выше инструментария выглядит следующим образом: в поле запроса программной оболочки bash необходимо ввести команду insmod max_hook_module.ko, где max_hook_module.ko имя модуля КИС. Для безошибочного выполнения команды файл модуля КИС должен находиться в рабочей директории программной оболочки bash. После установки модуля КИС в ядро ОС Linux необходимо создать интерфейс символьного устройства для управления модулем КИС – файл символьного устройства. Для создания файла символьного устройства используется системная утилита mknod. В качестве параметров mknod необходимо указать в соответствующем порядке:

- имя файла устройства; выбирается пользователем;

- тип файла устройства; с – в случае символьного устройства;

- major номер – идентификационный номер модуля КИС; присваивается при загрузке модуля, берется из специального файла /proc/modules;

- minor номер – номер устройства; 0 – так как модуль КИС поддерживает наличие всего 1 устройства. Для автоматизации установки разработан скрипт insmod.sh.

Алгоритм работы измерительного зонда состоит из следующих шагов:

1.     сохранение текущих значений базовых регистров, участвующих в работе измерительного зонда;

2.     сохранение текущего значения программного счетчика событий;

3.     выполнение сериализации и сохранение текущего значение счетчика времени;

4.     восстановление исходных данных базовых регистров;

5.     выполнение исследуемой подпрограммы;

6.     сохранение значений базовых регистров, участвующих в работе измерительного зонда;

7.     выполнение сериализации сохранение текущего значение счетчика времени;

8.     проверка переполнения буфера данных, если переполнение, переход к п.9, если нет переход к п. 10;

9.     сброс указателя на начало буфера и установка признака переполнения буфера данных;

10.  запись данных счетчиков в буфер данных.

 

Точки установки ИЗ

Для успешной установки ИЗ при измерении ВВХ стадии приема необходимо определить параметров установки:

- адрес возврата подпрограммы; для нашего случая это адрес возврата подпрограммы rtl8139_poll;

- переносим ли вызов подпрограммы; если нет, необходимо определить размер дополнительных операций для переноса в байтах и направление переноса: до вызова или после;

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

Адрес возврата исследуемой подпрограммы, определяется по результатам экспериментов нахождения адресов возврата. Результаты экспериментов по каждой из исследуемых подпрограмм содержатся в папках с именами соответствующих подпрограмм. Результаты определения адресов возврата имеют в названии префикс «bk_» и содержат список адресов возврата для конкретного адреса, связанного с именем подпрограммы, который выступает в качестве основного имени файла. Файл хранит текстовую информацию и имеет расширение .txt. Таким образом, в папке с именем rtl8139_poll имеется единственный файл с префиксом «bk_»: bk_f097c58b.txt. Уникальность файла в раках директории говорит о том, что с символьным именем подпрограммы связан единственный адрес пространства ядра ОС - f097c58b. Содержимое файла так же ограничивается единственной записью: c0690e47. Это говорит о том, что во время эксперимента подпрограмма вызывается только из одного и того же места программного кода, и для измерений необходимо поставить зонд только по адресу c0690e47.

Остальные дополнительные параметры определяются из дизассемблированного кода ядра ОС Linux. Для дизассемблирования применялась программа objdump. Для анализа необходимо исследовать область кода, окрестную адресу установки ИЗ - c0690e47. Для подпрограммы рассматриваемого примера такая область выглядит следующим образом:

c0690e42:         89 d8                             mov   %ebx, %eax

      c0690e44:    ff 53 10                                   call    *0x10(%ebx)

      c0690e47:    89 45 f0                         mov   %eax,-0x10(%ebp)

Из приведенного выше участка видно, что вызов является косвенным, а для установки ИЗ необходимо дополнительно перенести инструкцию MOV, следующую за вызовом, величиной в 3 байта. Косвенный вызов свидетельствует о необходимости маркировки подпрограммы, и следовательно о необходимости определения адреса подпрограммы для установки маркера. Для определения необходимого адреса используется встроенный файл символьных имен ядра ОС Linux – файлом kallsyms. Строка для рассматриваемого подпрограммы примера имеет вид:

f090058b t        rtl8139_poll [8193too]

Данная строка показывает, что символьному имени rtl8139_poll соответствует подпрограмма, доступная локально в модуле с именем 8139too. Подпрограмме соответствует адрес f090058b. Именно этот адрес необходим для маркировки подпрограммы при помощи КИС.

 Следует отметить, что адреса в названии файла адресов возврата и в файле символьных имен ядра ОС Linux различаются. Это происходит из-за того, что исследуемая подпрограмма принадлежит загружаемому модулю, и её адрес меняется при каждой переустановке модуля, включая перезагрузку компьютера.

Для автоматизации анализа подпрограмм автором был разработан скрипт, выполняющий предварительный анализ, посредством которого формируется файл.

Установка перехвата прерываний производится записью идентификатора команды перехвата прерываний I в файл символьного устройства модуля КИС.

Установка ИЗ производится в соответствии с дополнительными параметрами, для установки ИЗ, в файл символьного устройства КИС необходимо записать следующую команду примера :

s a 3 c0690e47, где s – идентификатор команды установки ИЗ, a – идентификатор расположения интервала для дополнительного переноса, 3 – объем интервала дополнительного переноса в байтах, c0690e47 -адрес установки;

Установка маркера подпрограммы производится записью следующей команды в файл символьного устройства модуля КИС:

M 0 f090058b, где М – идентификатор команды, 0 – номер маркера, f090058b – адрес подпрограммы для маркировки.

Чтение из буфера КИС производится чтением из файла символьного устройства. Для выполнения операции чтения автором использовалась программа cat, которая является стандартной программой, поставляемой с большим количеством дистрибутивов ОС Linux. Операция чтения производится следующей командой программной оболочки bash:

      cat /dev/max_hook > rtl8139_poll_0_i.txt, где cat – имя программы вывода содержимого в стандартный поток данных, /dev/max_hook – директория и имя файла символьного устройства, > - перенаправление стандартного потока в файл, rtl8139_poll_0_i.txt – имя файла для перенаправления стандартного потока.

Результаты измерений

Параметры настройки стенда для измерений

Стенд состоит из двух ЭВМ, соединенных перекрестным кабелем типа витая пара. Основные характеристики первой и второй ЭВМ представлены в таблице 1.

Таблица 1  Основные характеристики ЭВМ, входящих в стенд

Наименование

характеристик

Значения характеристик

1 ЭВМ

2 ЭВМ

Процессор

 

Название ядра

Количество ядер      

Частота генератора

Частота процессора

IntelCorei7 3632QM

Ivy Bridge

    4

99.76Мгц

1197.14МГц

Intel Pentium4

Willamette

    1

101 МГц

1616 МГц

Оперативная память

Объем

 

4096 МБ

 

512 МБ

Сетевая карта

Производитель

Realtek SemiconductorCo

Realtek SemiconductorCo

Программное

 обеспечение

Название дистрибутива

Версия ядра

Разрядность

Драйвер сетевой карты

Пакет

 

 

Fedora Core19

 

 

 

 

 

Fedora Core11

2.6.29.4-167

32 бита

8139too

SystemTap

 

Перед началом тестирования необходимо определить количество экспериментов, которое обеспечит репрезентативную выборку. Поскольку необходимые данные о подобных экспериментах отсутствуют, а цена проведения единичного эксперимента мала, то для первичной выборки было решено повести серию из 100000 экспериментов. Проведение серии экспериментов такого объема и при оценке по формуле Стьюдента обеспечивает доверительную вероятность 0,95, соответствующую доверительному интервалу нормального закона распределения с дисперсией =25000 тиков при выбранной точности измерений в один тик. Длительность проведения эксперимента на ЭВМ П-С с конфигурацией, приведенной в табл.1, занимает не более 3 минут.

Измерения производятся КИС, размещенным во второй ЭВМ, которая имеет частоту процессора 1616 МГц, поэтому единица измерения времени 1 тик = 0,6 нс = 0,6 х 10-9 сек.

 

Сценарии экспериментальных исследований

Сценарий 1 Определение вероятностно-временных характеристик зонда

По результатам экспериментов определено математическое ожидание времени  и дисперсия  выполнения ИЗ:

 =  (тик),  (тик). Это свидетельствует, что зонд обладает лишь систематической инструментальной погрешностью, что в свою очередь позволяет измерять времена выполнения функций с точностью до 1 тика.

Сценарий 2  Определение названия функций, их адресов возврата и дерева вызовов при ретрансляции датаграмм.

Для определения названия функций используется программа SystemTap и специально разработанный скрипт, устанавливающий зонды Kprobes на все символьные имена соответствующие маске, указанной в скрипте. При проведении эксперимента зонды Kprobes устанавливаются на все символьные имена, содержащиеся в файлах исходного кода папок «net» и «drivers/net» ядра ОС Linux. Программа SystemTap в отчете проведения эксперимента указывает, что установка зондов произведена примерно на 9000 символьных имен.

В результате проведения экспериментов получены файлы трассировки выполнения обработки экспериментов ядром ОС Linux.

Из полученных данных формируется список имен подпрограмм, в котором из списка символьных удалены имена макросов и встроенные подпрограммы. Для этого, полученные в результате эксперимента символьные имена сравниваются с именами, содержащимися в специализированном файле kallsyms. Файл kallsyms содержит информацию о всех символьных именах ядра ОС Linux с пометками, обозначающими типы символьных имен. Для обработки информации используется программа построчной обработки текстовых файлов awk в совокупности со специально разработанным скриптом, реализующим алгоритм поиска и сравнения символьных имен.

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

 Для определения адресов возврата, для каждой из подпрограмм списка названий подпрограмм был сформирован скрипт программы SystemTap для получения адреса возврата подпрограммы из стека во время выполнения подпрограммы и скрипт программы awk для генерации скриптов SystemTap для каждой из 252, выделенных, подпрограмм.

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

Для определения дерева вызовов, определяющего последовательность выполнения подпрограмм при помощи программы SystemTap устанавливаются зонды Kprobes на каждую подпрограмму и соответствующие ей адреса возврата.

Эксперименты проводились сериями, серия состоит из отправки 215 UDP датаграмм. В общей сложности проведено 500 серий экспериментов, что составило 107500 экспериментов по отправке одной UDP датаграммы. Разделение экспериментов на серии необходимо для предотвращения переполнения памяти.

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

На рис. 3 представлен график зависимости глубины вложенности (ГВ) от номера вызова в основных реализациях приема и отправки UDP датаграмм.

Для каждой из основных реализаций было построено дерево вызовов, пример дерева вызовов основной реализации стадии приема При анализе основных реализаций было установлено:

1)максимальная глубина вложенности (ГВ) подпрограмм:

 для приема     13; для отправки 20.

2)количество подпрограмм в реализации:

прием              77; отправка        70.

 

rtl8139_poll

     __netdev_alloc_skb

          __alloc_skb

          __alloc_skb

     __netdev_alloc_skb

     skb_put

     skb_put

     eth_type_trans

          skb_pull

          skb_pull

     eth_type_trans

     netif_receive_skb

          net_timestamp

          net_timestamp

          ip_rcv

               nf_hook_slow

                    nf_iterate

                         ipv4_conntrack_defrag

                              ip_defrag

                                   ipqhashfn

                                   ipqhashfn

                                   inet_frag_find

                                        ip4_frag_init

                                             inet_getpeer

                                                 unlink_from_unused

                                                 unlink_from_unused

                                             inet_getpeer

                                        ip4_frag_init

                                        ip4_hashfn

                                             ipqhashfn

                                             ipqhashfn

                                        ip4_hashfn

                                   inet_frag_find

                              ip_defrag

                         ipv4_conntrack_defrag

                    nf_iterate

               nf_hook_slow

          ip_rcv

     netif_receive_skb

     rtl8139_isr_ack

     rtl8139_isr_ack

 

 

 

RET

RET

 

RET

 

 

RET

RET

 

 

RET

 

 

 

 

 

 

RET

 

 

 

 

RET

RET

RET

 

 

RET

RET

RET

RET

RET

RET

RET

RET

RET

 

RET

1

2

3

3

2

2

2

2

3

3

2

2

3

3

3

4

5

6

7

8

8

8

9

10

11

11

10

9

9

10

10

9

8

7

6

5

4

3

2

2

2

Рис .2 Фрагмент дерева вызовов стадии приема

 

Рис.3. График глубины вложенности подпрограмм обработки приема и посылки UDP датаграмм.

3)общих подпрограмм для выполнения приема и отправки        30;

4)количество вызовов подпрограмм:

для приема      101; для отправки         98.

5)выделены подпрограммы цепочек:

udp_rcv; ip_push_pending_frames; ip_rcv; rtl8139_start_xmit

 

Сценарий 3 Определение вероятностно-временных характеристик для каждой функции, выполняемой при ГВ=0 и ГВ=1 при ретрансляции датаграмм.

Для каждой из подпрограмм было проведено две серии экспериментов по 50100 обработок UDP датаграмм, в результате чего были получены файлы, содержащие временные отметки вызова и возврата, а так же значение программного счетчика прерываний в момент снятия каждой из меток.

Обработка полученных данных состоит из:

1.     определения времени выполнения каждого измерения вычитанием из временной метки возврата временной метки вызова подпрограммы;

2.     фильтрации экспериментов, прерываемых на обработку прерываний;

3.     вычисления математического ожидания и дисперсии каждого эксперимента;

4.     построения гистограмм функции плотности вероятности распределения времени выполнения каждого эксперимента;

5.     вычисления математического ожидания времени выполнения каждой подпрограммы;

6.     вычисления дисперсии времени выполнения каждой подпрограммы.

Для проведения вышеуказанной обработки использовались разработанные автором скрипты для программы awk. Построение графиков производилось при помощи программы gnuplot. В результате обработки были получены файлы, для ГВ=0 и ГВ=1 представленные в таблицах 2 и 3.

Таблица 2. Результаты вычислений временных характеристик подпрограмм ГВ=0

Названия подпрограмм

мат. ожидание,
(тик)

дисперсия,
(тик2)

rt_hash

92,4

44

__nf_ct_refresh_acct

647,1

1121,2

dst_release

49,3

326,5

ipt_do_table

1054,6

27460,7

__alloc_skb

784,4

7227,3

__ip_select_ident

586,4

5046,8

pfifo_fast_enqueue

197,4

24542,5

csum_partial_copy_fromiovecend

1791,9

1781221,1

sk_wake_async

46,2

130,1

ipqhashfn

96,8

2,6

skb_pull

64,8

3

unlink_from_unused

595,6

1110,7

__copy_skb_header

220,2

45,7

nf_ct_deliver_cached_events

395,4

2005,2

 

Таблица 3. Результаты вычислений временных характеристик подпрограмм ГВ=1

Названия подпрограмм

мат. ожидание, (тик)

дисперсия
экспер., (тик2)

экспер.

рассчет.

__ip_route_output_key  

933

840,6

20321,3

udp_packet

698,7

51,6

1350,1

ip_cork_release

129,9

80,6

1932,5

ip_copy_metadata

207,7

158,4

242,4

ipt_local_out_hook

1095,2

40,6

8065

sock_alloc_send_skb

1062,1

277,7

49500,5

ip_select_ident

607,2

20,8

1480

qdisc_enqueue_root

286,4

89

27827,6

ip_generic_getfrag

1885

93,1

2074889,5

sock_wmalloc

928,6

144,2

499882

sock_def_write_space

172,4

126,2

6137,3

ip4_hashfn

120,4

23,6

20,7

eth_type_trans

218,7

153,9

2356,3

ipt_local_in_hook

1259

204,4

42117

sock_def_readable

4081,4

4035,2

262081,9

inet_getpeer

1025,4

429,8

12699,1

__skb_clone

307,4

87,2

190,3

ip_route_input

462,7

370,3

22315,6

ipv4_confirm

567,2

171,8

10439,1

__netdev_alloc_skb

804,8

20,4

25660,2

По данным таблиц 2 и 3 так же было вычислено среднее время выполнения подпрограммы, как среднее арифметическое время выполнения подпрограмм. Среднее время выполнения подпрограммы составило 413 (тик).

Нормативное время выполнения подпрограммы было рассчитано как суммарное время выполнения стадий приема и отправки деленное на суммарное количество вызовов, определенное из дерева вызовов. Нормативное время выполнения подпрограммы составило 361,5 (тик), тогда ошибка при оценке времени выполнения стадий равно 51,5 (тик) и не превосходит 15%.

 

Сценарий 4 Определение вероятностно-временных характеристик для каждой цепочки функций при ретрансляции датаграмм

Реализация сценария при определении ВВХ цепочек отличается выбором подпрограмм функций, с которых начинается выполнение соответствующей цепочки. Результаты измерения ВВХ цепочек представлены в таблице 4, где, П-стадия приема; О - стадия отправки.

Таблица 4. Результаты вычислений временных характеристик цепочек

стадия

ГВ цеп.

Названия  подпрограмм

мат. ожидание, (тик)

Дисперсия экспер., (тик2)

экспер., подпрог.

рассчет., цепочки

подсуммы цеп. по ГВ

П

2

rtl8139_poll

42905,1

16048,1

42905,1

2975466

1

ip_rcv

13428,5

19566,4

26857

5846195

0

udp_rcv

7290,6

7290,6

7290,6

809158

О

2

inet_send_msg

28677,2

9023,2

28677,2

2067391

1

ip_push_pending_frames

19654

11291,8

19654

768929

0

rtl8139_start_xmit

4181,1

8362,2

8362,2

533882

Сценарий 5  Определение вероятностно-временных характеристик для стадий приема и отправки при ретрансляции датаграмм.

Стадия приема – rtl8139_poll – включает цепочки 2-3-4 уровней ЭМВОС

В результате обработки измеренных временных параметров стадии приема получены значения математического ожидания  и дисперсии  при последовательной обработке поступающих пакетов:  =42905,1 (тик)                         = 2 975 466 (тик2)

Гистограмма стадии приема, представлена на рисунке 4.

C:\Users\Maxim\AppData\Local\Microsoft\Windows\INetCache\Content.Word\rtl8139_poll_macro.pngРис. 4 Гистограмма плотности распределения времени обработки пакета на стадии приема

Стадия отправки – inet_send_msg –включает цепочки 4-3-2-уровней ЭМВОС

В результате обработки измеренных временных параметров стадии отправки получены значения математического ожидания  и дисперсии  при последовательной обработке ретранслируемых  пакетов:  = 28 677,2 (тик)    = 2 067 391 (тик2).

Гистограмма стадии отправки, представлена на рисунке 5.

inet_send_msg_macroРис. 5 Гистограмма плотности распределения времени обработки пакета на стадии отправки

 

Обработка измеренных параметров позволяет определить параметры для оценки производительности при ретрансляции пакетов прокси-сервером. В результате анализа измеренных параметров установлено следующее.

1) Математическое ожидание  времени обслуживания при ретрансляции  =  +  = 71 582,3 тик.

2) Дисперсия  времени обслуживания при ретрансляции

 = + = 5 042 857 (тик2)

3)Коэффициент вариации   =  =  9,841592 х10-4

4) В связи с тем, что коэффициент вариации  < 1,0, следует при определении характеристик производительности прокси-сервера использовать модель M/G/1 , а не  модель М/М/1 .

5) Приведенные на рисунках 6 и 7 графики зависимости от коэффициента  времени  обслуживания потока пакетов и количества  пакетов, находящихся на обслуживании и в очереди прокси-сервера, (для M/M/1 –сплошная линия, M/G/1 – пунктирная линия) определяются для модели M/G/1 соотношениям (1), (2) и имеют вид:

           (1)              (2)

где   =   ;   = 1/  ;       =     

 

Коэффициент  загрузки прокси-сервера

Рис. 6 Зависимость времени  обслуживания пакета прокси-сервером от  коэффициента  загрузки

6) Из анализа графика зависимости времени  от коэффициента  загрузки следует, что при использовании модели M/G/1  для исследуемого прокси-сервера:

- предельная интенсивность  = 23,28 х 103 (пакетов/сек),

- при 0.98 (соответствующему = 24.26х103 (пакетов/сек)) время пакета на обслуживании = 1 827 074,6 тиков = 1 096, 24 мкс, т.е. время ожидания в очереди на обслуживание превышает время обработки прокси-сервером в 14,3 раза,

- при 0.9 (соответствующему = 24.26х103 (пакетов/сек)) максимальная погрешность использования модели M/M/1  составляет 81.6%. %.

 

Коэффициент  загрузки прокси-сервера

Рис. 7 Зависимость количества  пакетов обслуживаемых прокси-сервером от  коэффициента  загрузки

 

ЛИТЕРАТУРА

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

2.       Абросимов Л.И., Крамаренко М.Д. Функциональная и математические модели для оценки вероятностно-временных характеристик прокси-сервера Вестник МЭИ 2013, №3, с. 100-106 

3.       Абросимов Л.И., Крамаренко М.Д.  Методика экспериментальной оценки производительности прокси-сервера Distributed Computer and Communication Networks: Control, Computation, Communications (DCCN-2013), Moscow: JSC «TECHNOSPHERA», 2013  978-5-94836-366-0 с.218-225

4.       Абросимов Л.И. Методы проектирования и анализа сетей ЭВМ. Изд. Palmapium academic publishing, 2013 ,210 стр. ISBN 978-3-659-98772-4