BC/NW 2015  1 (26) 3:1

 

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

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

 

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

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

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

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

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

С этой целью разрабатывается  цикл лабораторных работ по исследованию ВВХ прокси-сервера, который базируется на измерительном стенде, состоящем из двух ЭВМ, соединенных коммуникационными устройствами и каналами связи. Первая ЭВМ генерирует пакеты и принимает ретранслированные, вторая соответственно принимает и ретранслирует пакеты от первой ЭВМ, выполняя тем самым функции прокси-сервера. Отправка и прием пакетов организованны по схеме «один за одним».

Характеристики прокси-сервера включают набор технических и программных средств, приведенных ниже:

·        Процессор                                                    Intel Pentium 4

§       Частота генератора                         101 МГц

§       Частота процессора                        1616 МГц

§       Разрядность                                    32 бита

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

§       Объем                                              1024 МБ

§       Частота работы                               134.7 МГц

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

§       Производитель                      Realtek Semiconductor Co.

·        Характеристики программного обеспечения:

§       Название дистрибутива                  Fedora Core 11

§       Версия ядра                                    2.6.29.4-167

§       Разрядность                                    32 бита

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

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

Первым пунктом идет профилирование системы, заключаются оно в определении состава подпрограмм участвующих в обработке и отправке пакетов по протоколам UDP и TCP. Также в результате профилирования сетевой части ОС Linux, находятся адреса вызовов и возвратов подпрограмм. Эти данные позволят в дальнейшем производить установку зондов на интересующие нас подпрограммы. Последним этапом профилирования является получение последовательного списка выполнения подпрограмм участвующих в приеме и передаче и выделении подпрограмм, характерных для обработки UDP и TCP пакетов. Выделенные последовательности анализируются на встречающиеся в стадиях приема и отправки реализации, и по эталонным реализациям строятся деревья вызовов, показывающие вложенность вызываемых подпрограмм.

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

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

·        для приема

·        для отправки

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

·        прием

·        отправка

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

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

·        для приема

·        для отправки

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

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

Таблица 1

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

стадии и цепочки

0 ОГВ

1 ОГВ

1

rtl8139_poll

rt_hash

__ip_route_output_key

2

inet_sendmsg

__nf_ct_refresh_acct

udp_packet

3

udp_rcv

dst_release

ip_cork_release

4

ip_push_pending_frames

ipt_do_table

ip_copy_metadata

5

ip_rcv

__alloc_skb

ipt_local_out_hook

6

rtl8139_start_xmit

__ip_select_ident

sock_alloc_send_skb

7

-

pfifo_fast_enqueue

ip_select_ident

8

-

csum_partial_copy_fromiovecend

qdisc_enqueue_root

9

-

sk_wake_async

ip_generic_getfrag

10

-

ipqhashfn

sock_wmalloc

11

-

skb_pull

sock_def_write_space

12

-

unlink_from_unused

ip4_hashfn

13

-

__copy_skb_header

eth_type_trans

14

-

nf_ct_deliver_cached_events

ipt_local_in_hook

15

-

-

sock_def_readable

16

-

-

inet_getpeer

17

-

-

__skb_clone

18

-

-

ip_route_input

19

-

-

ipv4_confirm

20

-

-

__netdev_alloc_skb

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

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

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

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

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

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

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

Пример результатов приведен в таблицах 2,3 и на рисунках 1,2.

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

стадия

ОГВ цеп.

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

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

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

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

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

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

П

2

rtl8139_poll

98850.5

51975.1

98850.5

4486433

1

ip_rcv

23437.7

34215.5

46875.4

14589011

0

udp_rcv

12659.9

12659.9

12659.9

929429

О

2

inet_send_msg

50995.5

15348.2

50995.5

4229911

1

ip_push_pending_frames

35647.3

15298.5

35647.3

1682495

0

rtl8139_start_xmit

10174.4

20348.8

20348.8

1529974

П - стадия приема;
О - стадия отправки;

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

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

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

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

rt_hash

93.4

 30.5

__nf_ct_refresh_acct

452.5

6070.9

dst_release

70.5

277.3

ipt_do_table

1351.8

113048.6

__alloc_skb

1100.6

7585.6

__ip_select_ident

449.7

7154.8

pfifo_fast_enqueue

373.1

83105.9

csum_partial_copy_fromiovecend

2519

3773465.1

sk_wake_async

50.5

122.5

ipqhashfn

116.3

21.5

skb_pull

82.2

29.3

unlink_from_unused

385.4

6356.6

__copy_skb_header

303.7

2721.1

nf_ct_deliver_cached_events

265.6

785.5

 

Рис. 1. Главная часть гистограммы плотности распределения времени выполнения подпрограммы upd_rcv.

 

Рис. 2. Главная часть гистограммы плотности распределения времени выполнения подпрограммы ipv4_confirm.

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

 

Литература

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

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

3.   Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е изд. – СПб.: Питер,   2012. – 960 с.: ил.