Методика тестирования неуправляемых коммутаторов, версия 1.4


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

Для первой части использовалась утилита IOMeter, разработанная компанией Intel. Больше компания не развивала этот продукт. Но некоторое время назад на сайте SourceForge появилась новая версия программы. К сожалению, она еще достаточно сырая — часто зависала во время тестирования. Поэтому в тестах используется версия программы от Intel.

IOMeter, работая на транспортном уровне и используя протокол TCP, позволяет генерировать трафик с заданными параметрами, а также собирать по нему статистику. Для трафика можно задавать множество параметров, но нас интересовала генерация трафика максимальной интенсивности, поэтому было выбрано:

  • тип передачи — 100% последовательная
  • вид передачи — 100% запись
  • размер блока данных — 64KB (это не размер кадра ethernet, а блок данных, которым оперирует программа)
  • время задержки при передаче пакетов — минимально.

Для снятия скоростных показателей передачи данных использовалась системная утилита операционной системы "Perfomance Monitor".

Для тестирования строилась одноранговая локальная сеть Fast Ethernet из пяти компьютеров:

  • Платформа — Asus Terminator
  • Процессор — VIA C3 866MHz
  • Память — 128MB SDRAM
  • Жесткий диск — Maxtor 20GB
  • ОС — Windows2000 Pro +SP2

В качестве сетевых адаптеров использовались Intel Pro/100+ Management Adapter и 3COM 3c905B-TX с последними драйверами с сайта производителей. Сетевые карты Intel использовались только во множественных тестах (где работают больше двух компьютеров одновременно) и только на скоростях 100Mbit. Тесты с участием только двух компьютеров и где изменяется режимы работы сетевых карт (скорости и дуплекса), прогонялись на сетевых адаптерах от 3COM. Это связано с тем, что в процессе тестирования выяснилось — невозможно однозначно установить режим дуплекса и контроля потока при скорости 10Mbits на Intel адаптерах со стороны драйвера. К примеру, хотя последний и рапортует о выставлении 10Mbits/FDX/Flow=on, вполне вероятно что адаптер, тем не менее работает на 10Mbits/HDX/Flow=off. Но при выставлении нужной скорости со стороны управляемого коммутатора, адаптер правильно на нее переключался. Эта ситуация проверялась на разных компьютерах/драйверах и управляемых коммутаторах (Intel 460T и нескольких моделях от Cisco).

Настройки сетевых адаптеров:

  • Flow Control Settings (управление потоком) — включено
  • QoS packet tagging (приоритетная обработка кадров) — запрещено.
  • Link Speed & Duplex (скорость передачи и дуплекс) — менялась в зависимости от конкретного теста.
Остальное по умолчанию.

Физическое тестирование

Из списка тестов были убраны большинство пунктов с одностороннем тестированием, так как по предыдущем тестам видно, что результаты двусторонних (с передачей трафика в обе стороны) тестов подобны результатам односторонних.

  • 1. Максимальная загрузка коммутатора.
    • Задействуются восемь портов (или пять в случае пяти-портового) портов коммутатора.
    • Скорость передачи — 100Mbits, Full Duplex.
    • Устанавливаем режим передачи трафика "все со всеми" — каждый хост передает и принимает данные с остальных хостов. Число хостов (сетевых адаптеров) равно числу портов коммутатора.
    Таким образом мы имитируем общение всех компьютеров друг с другом, выясняем, выдерживает ли коммутатор подобную нагрузку, и смотрим скорость передачи данных на каждом из портов.
  • 2. Передача данных между двумя портами при отсутствии трафика на остальных (идеальный случай).
    • 2.1 Односторонняя передача из 100Mbits Full Duplex в 100Mbits порт Full Duplex.
    • 2.2 Двусторонняя передача между 100Mbits Full Duplex и 100Mbits портами Full Duplex.
    Тут, скорее всего, результаты окажутся одинаковыми у большинства коммутаторов, так как это идеальный случай и щадящий режим для устройства. Тем не менее, здесь мы определяем максимально достижимую скорость передачи данных между двумя клиентами.
  • 3. Передача данных между 100Mbits Full Duplex и 10Mbits сегментами.
      Здесь мы выясняем качество коммутации между сегментом 100Mbits Full Duplex (другой коммутатор или клиент) и 10Mbits сегментом с различными параметрами дуплекса.
    • 3.1 Двусторонняя передача между 100Mbits Full Duplex в 10Mbits Full Duplex портами.
    • 3.2 Двусторонняя передача между 100Mbits Full Duplex в 10Mbits Full Half портами.
  • 4. Передача данных между 100Mbits Half Duplex и 10Mbits сегментами.
      Смотрим коммутацию сегментом 100Mbits Half Duplex (обычно 100Mbits концентратор) и 10Mbits сегментом с различными параметрами дуплекса.
    • 4.1 Двусторонняя передача между 100Mbits Half Duplex и 10Mbits портами Full Duplex.
    • 4.2 Двусторонняя передача между 100Mbits Half Duplex и 10Mbits портами Half Duplex.
  • 5. Передача данных между двумя 10Mbits портами.
    Конечно, обычно нет смысла подключать 10Mbits сетевые адаптеры к 100Mbits порту при сегодняшних ценах на Fast Ethernet платы, но тем не менее такое бывает. Ну а установка коммутаторов в центре звезды из концентраторов или просто объединения двух 10Mbits сегментов является обычной практикой. Поэтому рассмотрим и такую возможность.

      Эмуляция работы двух рабочих станций с 10Mbits сетевыми адаптерами или передачи данных между двумя 10ти мегабитными концентраторами.

    • 5.1 Двусторонняя передача между 10Mbits Full Duplex и 10Mbits Full Duplex портами.
    • Моделируем подключение двух концентраторов к портам коммутатора.

    • 5.2 Двусторонняя передача между портами 10Mbits Half Duplex и 10Mbits Half Duplex.
    • Моделируем подключение концентраторов к одному из портов коммутатора и 10Mbits сетевого адаптера к другому.

    • 5.3 Двусторонняя передача между портами 10Mbits Full Duplex и 10Mbits Half Duplex.
  • 6. Передача данных между 100MBit портами c различными параметрами дуплекса.
    Эмулируется наличие коммутатора или концентратора на одном из портов (100Mbits) и 100Mbits концентратора на другом.
    • 6.1 Двусторонняя передача между 100Mbits Full Duplex и 100Mbits портами Half Duplex.
    • 6.2 Двусторонняя передача между двумя 100Mbits Half Duplex портами.

Возможно, более наглядно это будет представить в виде таблицы:

тест клиенты режим первого, Mbits дуплекс первого направление передачи режим второго, Mbits дуплекс второго
1 5 100 Full <-->    
2.1 2 100 Full --> 100 Full
2.2 2 100 Full <--> 100 Full
3.1 2 100 Full <--> 10 Full
3.2 2 100 Full <--> 10 Half
4.1 2 100 Half <--> 10 Full
4.2 2 100 Half <--> 10 Half
5.1 2 10 Full <--> 10 Full
5.2 2 10 Half <--> 10 Half
5.3 2 10 Full <--> 10 Half
6.1 2 100 Half <--> 100 Full
6.2 2 100 Half <--> 100 Half

Анализ полученных данных

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

  • Максимальную теоретическую скорость в текущем тесте, берем за единицу или 100%
  • Максимальная скорость для тестов 100MBit, Full Duplex равна 100,000,000/8/1024 = 12,207KB
  • Максимальная скорость для тестов 100MBit, Half Duplex (при двусторонней передаче данных) равна 100,000,000/8/1024/2 = 6,107KB
  • Максимальная скорость для тестов с участием 10MBit, Full Duplex портов равна 10,000,000/8/1024 = 1,221KB
  • Максимальная скорость для тестов с участием 10MBit, Half Duplex портов (при двусторонней передаче данных) равна 10,000,000/8/1024/2 = 610KB
  • Скорость передачи данных текущего теста принимается за X% и рассчитывается исходя из пропорции.
    Например, безразмерный показатель для значения 800Kb, снятого при тестировании пункта 6.1 рассчитывается как
    800/1221 = 0.66

Очевидно, что теоретически рассчитанный максимум не достижим практически. Хотя бы потому, что часть пропускной способности съедается служебными заголовками протоколов более низких уровней. Поэтому величина порядка 0.9 уже говорит об очень хорошем результате в тесте.

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

Теперь рассмотрим деление тестов на группы и их весовые коэффициенты:

номер теста весовой коэффициент группа
1. 0.6 Группа 1
Работа в режиме 100MBit, Full Duplex
2.1 0.2
2.2 0.2
3.1 0.5 Группа 2
Коммутация между 100Mbits Full Duplex и 10MBit портами
3.2 0.5
4.1 0.5 Группа 3
Коммутация между портами 100Mbit Half Duplex и 10MBit портами
4.2 0.5
5.1 0.34 Группа 4
Коммутация между 10Mbit портами с разными параметрами дуплекса
5.2 0.33
5.3 0.33
6.1 0.5 Группа 5
Коммутация между 100Mbit портами с различными параметрами дуплекса
6.2 0.5

Весовые коэффициенты выбирались эмпирическим путем. Статистики по использованию коммутаторов в различных режимах у меня нет.

Функциональность и дизайн

Под функциональностью понимается как наличие дополнительных возможностей (типа QoS), так и "информативность" коммутатора. Так как для неуправляемых коммутаторов единственный способ передачи информации и статистики о своей работе — это светодиодные индикаторы, то оцениваем их количество и способность отразить максимум информации о порте — скорость работы, наличие полного дуплекса, обнаружение коллизии, индикация передачи данных, информацию об аварийном отключении порта. А также индикатор питания. В эту же категорию относим наличие (или соответственно отсутствие) порта "uplink".

К дизайну отнесем размеры коммутатора (относительно количества его портов), возможность установки на горизонтальные поверхности и наличие крепежных отверстий для установки устройства на стену, удобство расположения (обзора) индикаторов, ну и его внешний вид.

Естественно, это не окончательный вариант методики, она будет дополняться шлифоваться. Любые Ваши предложения высказывайте в форуме.

Комментарии

Есть мнение, что выбранный размер кадра в 64KB — не оптимальный и на результаты тестирования оказывают сильное влияние конкретная реализация протокола. Вполне возможно. Было проведено небольшое сравнительное тестирование — передача данных со 100Mbits Full Duplex порта в 10Mbits Full Duplex порт с размером пакета в IOMeter от 1KB до 4MB. Результат можно видеть ниже (скорость указана в тысячах байт):

Но на достигнутом останавливаться не будем, дальнейшие тестирования в этом направлении будут продолжены.

 




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.