BC/NW 2007, №2, (11) :8.1
МЕТОДИКА
ИССЛЕДОВАНИЯ
ПРОИЗВОДИТЕЛЬНОСТИ
СЕТЕВЫХ УЗЛОВ
Л.И. Абросимов, А.А. Лебедь
(Москва, Московский энергетический институт
(технический университет), Россия)
Использование современных информационных технологий
предъявляет к создателям корпоративных вычислительных сетей (КВС) все более
высокие требования. Разработчики должны выполнить требование – обеспечить
доставку пользователю аудио- и видео-информации в реальном времени. Так
возникает проблема: «Как оценить и учесть задержки в узлах КВС?». Проблема
осложняется тем, что КВС обслуживает большое количество пользователей и
предоставляет широкий спектр услуг, используя общие ресурсы сетевых узлов.
Для количественной оценки временных параметров
функционирова-ния узлов КВС предложено [1] понятие «производительность узла»,
под которым понимается количество транзакций (сообщений, заявок), обслу-женных
узлом в единицу времени. В качестве узлов КВС рассматривают-ся: серверы,
рабочие станции, маршрутизаторы - каждый из которых сос-тоит из ЭВМ и
интерфейсной сетевой карты. В процессе функциони-рования, представленном на
рисунке 1, ЭВМ отправляет и получает транзакции, для чего использует свои
ресурсы. Время tAB обслуживания
при передаче и время tCD
обслуживания при приеме, являются базовыми параметрами для
определения производительности узла.
Таким образом, задача определения производительности узла
состоит в определении tAB и tCD , измеренных в режиме сетевого
взаимодействия нескольких (на рисунке 1 - двух) узлов.
Чтобы решить поставленную задачу потребовалось выполнить:
1) анализ возможностей измерительных
мониторов;
2) разработку схемы (плана)
проведения экспериментов;
3) сбор и
настройку экспериментального стенда;
4) разработку методики
экспериментального определения количествен-ных значений сетевых характеристик узлов;
Рис. 1.
Процесс обмена информацией
5) разработку
комплекса программных средств для измерения базовых параметров функционирования
сетевых программ (список, количество функций, частота их вызова и время выполнения);
6) разработка
программных средств для обработки и представления количественных значений
сетевых характеристик на основе предложенной методики;
7) проверка
предложенной методики и комплекса программных средств на основе команды ping.
Апробация предложенной методики
проводилась на исследовательском стенде группы вычислительных сетей МЭИ.
Для проведения исследований в
качестве сетевого узла был выбран узел, реализованный на базе IBM PC с ОС RedHat Linux 8.0 (Intel Pentium II 233 MHz, ОЗУ 288 Мбайт).
Проведен анализ возможностей измерительных
мониторов и установлено, что определить требуемые параметры возможно только при
создании программного измерительного комплекса, включающего в свой состав:
Kernprof [2], Linux Trace Toolkit (LTT) [3], Dynamic
Probes (DProbes) [4]. Схема взаимодействаия измерителей
и выполняемые функции представлены на рисунке 2.
План проведения экспериментов
предусматривает: получение данных о профайлинге ядра; извлечение списка
функций; получение дампа ядра Linux; составление rpn-файла с описанием зондов; вставку зондов в точки вызова
функций; фиксацию срабатывания зондов и системных событий; анализ результатов
эксперимента.
Для выполнения
исследований потребовалось: установить программные средства ( Kernprof,
LTT, DProbes); установить
соответствующие патчи для ядра ОС Linux; разработать скрипты для проведения
экспериментов.
В результате получили список вызываемых
функций ядра, их взаимосвязь, доказана возможность одновременной работы LTT и
DProbes, получены временные отметки выполнения функций, диаграмма работы
процесса ping, времена
отправки и получения тестового пакета ping.
Рис. 2. Схема взаимодействия измерительных и
программных средств
Разработанные программные средства:
mkprobes и AnalysisD2T, - обеспечили обработку и представление количественных
значений сетевых характеристик.
После получения списка функций,
вызываемых в ядре Linux, и проведения замера времен tAB, tBC
и tCD была проведена еще одна серия экспериментов с набором
зондов, достаточных для того, чтобы проследить интервалы работы исследуемого
процесса ping (т.е. с тремя зондами, установленными в
точках вызова функций __switch_to,
flush_thread,
schedule).
По полученной разнице времен было определено время (погрешность), требующееся
на срабатывание одного зонда.
Результаты экспериментов
(усредненные):
690 зондов
|
3 зонда
|
µ=1/t
|
tAB-690=378
мкс
tBC-690=445
мкс
tCD-690=75
мкс
|
tAB=200 мкс
tBC=418 мкс
tCD=40 мкс
|
µAB=5·103
Б/c
µCD=25·103
Б/c
|
Среднее время на срабатывание
одного зонда – 6,1 нс.
Если принять, что время на
обработку сетевых функций в узле 2 при отправке и приеме равно, соответственно,
tAB и tCD, а время обработки сетевой картой
одного байта при отправке равно времени приема, то, зная скорость передачи
данных в канале (100 Мбит/c), можно вычислить время tKSR и
интенсивность µKSR обработки картой одного байта:
tKSR=tBE=tFC=0,2 мкс, µKSR=µBE=µFC=5·106 Б/c
Из полученных значений видно, что
программная часть работает медленнее, чем аппаратная (µAB
< µKSR и µCD
< µKSR). Представленные результаты получены на основе
проведения эксперимента по обработке одиночной команды ping.
Поэтому в дальнейшем планируется провести эксперименты по посылке серии команд ping, а также исследовать другие команды, выявить зависимость
от ОС (для Linux – от версии ядра), частоты процессора, объема оперативной
памяти и определить функции, которые наиболее часто вызываются.
ЗАКЛЮЧЕНИЕ
1.
Количественные результаты, полученные при исследовании функционирования
в первую очередь предназначены для подтверждения работоспособности методики.
2.
Предложенная методика позволяет исследовать вероятностно-временные
характеристики сетевых узлов программными методами, что обеспечивает гибкость
их настройки на широкий класс программных средств, использующих ОС Linux.
ЛИТЕРАТУРА
1.
Абросимов Л.И. Основные положения
теории производительности вычислительных сетей./ Вестник МЭИ -2001 - №4 – с. 70
– 75
2.
Страница фирмы SGI,
посвященная профайлеру Kernprof (Kernel Profiling): http://oss.sgi.com/projects/kernprof/
3.
Информация по продукту Linux Trace Toolkit фирмы OPERSYS INC: http://www.opersys.com/ltt/
4.
Сайт проекта Dynamic Probes – отладчика под Linux,
работающего на уровне ядра и пользовательском уровне: http://dprobes.sourceforge.net/