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 |
rtl8139_poll |
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 ОГВ
Названия подпрограмм |
мат. ожидание, |
дисперсия, |
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 с.: ил.