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/