Тестирование гигабитных сетевых адаптеров на шине 32-бит PCI

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 1

Мы продолжаем цикл тестирования гигабитных сетевых адаптеров. Сегодня будут рассмотрены платы, предназначенные как для 32 бит PCI шины, так и платы с интерфейсом 64 бит PCI, но обратно совместимые с 32-битной шиной. Это именно та PCI шина, что распаяна на материнских платах обычных компьютеров. Наличие 64-бит PCI пока(?) является привилегией серверных материнских плат. Они предназначены для других задач, обычно многопроцессорные и естественно сильно дороже.

Теория о гигабитном Ethernet (Gigabit Ethernet) была рассмотрена в предыдущей статье. Эта статья ее продолжением, и кроме того, в ней немного модифицирована методика тестирования адаптеров.

Список плат

Пять из семи рассмотренных адаптеров собраны на микроконтроллере от National Semiconductor Corporation. Все они двух-чиповые, второй чип является трансивером физического уровня. Трансивер DP83861VQM-3 одинаков для всех пяти карт. На трансивере некоторых из них радиатор установлен, на других — отсутствует.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 2

Нужен он или нет — решать производителю, отмечу лишь, что трансиверы ощутимо греются. При смене карты сразу после выключения компьютера, чип или радиатор на ощупь практически обжигающие. Трансивер может работать на скоростях 10/100/1000 Мбит/сек в режимах полу- и полного дуплекса. Поддерживает режим автосогласования скоростей и режимов из вышеназванного списка (IEEE 802.3u Auto-Negotiation).

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 3

А вот микроконтроллеры установленные на этих картах, и являющиеся 10/100/1000 Мбит Ethernet контроллерами, связывающими сетевую карту с шиной PCI, различаются в зависимости от битности шины PCI. На 64-битных адаптерах установлены контроллеры DP83820BVUW, на 32-битных — DP83821BVM. В принципе, их единственное глобальное отличие, это разрядность PCI шины, с которой они работают. Остальные характеристики одинаковы:

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 4
  • MDI-X — автодетектирование прямого и кросс-кабеля;
  • встроенные очереди FIFO размерами 8 КБ на передачу и 32 КБ на прием;
  • поддержка Jumbo-фреймов;
  • поддержка VLAN (Virtual LAN) с автодетектированием и удалением VLAN-тэгов для принимаемых пакетов и автоматической установкой VLAN-тэгов на уходящие пакеты;
  • поддержка 802.1D и 802.1Q QoS, в том числе, несколько очередей в обоих направлениях (на прием и передачу);
  • ускорение обсчета контрольных сумм кадров протокола IPv.4 — поддерживается расчет и проверка заголовков протоколов IP, TCP, и UDP.

При установки драйверов под ОС Windows у всех этих пяти карт вылез забавный баг — после перезагрузки или поиска на наличие новых устройств, появлялось неизвестное дополнительное Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 5 PCI устройство, которое ничем не идентифицировалось и драйвер карты, который я пытался ему подсунуть, не воспринимала. Тем не менее, адаптеры нормально работали и других багов (в работе) замечено не было.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 6

Первая карта TRENDnet TEG-PCITX от компании TRENDware.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 7 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 8

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 9

Карта имеет 32-битный PCI интерфейс. Сзади на ней расположены шесть светодиодных индикаторов, первые три информируют о скорости соединения 10/100/1000 Мбит, а остальные показывают наличие коллизий, полного дуплекса и факта передачи данных. На трансивер установлен радиатор.

Для установки сетевого адаптера в ОС Windows 2000 использовалась последняя версия драйвера, скачанная с сайта производителя. Номер версии — 5.01.24.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 10 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 11

В драйвере присутствуют богатые возможности настройки и тюнинга карты, а размер Jumbo Frame можно задавать вручную с шагом 1, насколько большой размер можно выставить, не выяснялось. Но с размером фрейма 16128, являвшимся максимальным в тестах, адаптер работал нормально.

Для ОС Linux предлагаются лишь драйвера для ядра 2.2.х. В ядрах версии 2.4.х они не собираются, поэтому использовался встроенный в ОС драйвер «National Semiconduct DP83820» версии 0.18. Но в ней задан максимальный размер Jumbo Frame — 8192. Причем не правя исходный код драйвера, невозможно выставить размеры пакета, более 1500.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 12

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 13 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 14

Вторая карта — TRENDnet TEG-PCITX2 — от той же компании, но с интерфейсом 64-бит PCI. Кроме этого, используется более старая ревизия микроконтроллера — DP83820BVUW. Трансивер тоже оснащен радиатором.

Драйверы под Windows и Linux те же, что и у 32-битной модели.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 15

Следующие две карты — от компании SMC Networks. Обе они двух-чиповые и собрана на вышеописанных микроконтроллерах. На обоих картах радиаторы отсутствуют.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 16 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 17

Карта SMC9452TX обладает 32-битным интерфейсом PCI и имеет 5 индикаторов, три из которых сообщают о скорости работы, а два оставшиеся о наличии линка и активности. У обоих адаптеров интересный дизайн PCB — со стороны интерфейсного Ethernet разъема наблюдается небольшой срез, а с другой стороны — непонятный выступ. Хотя после внимательного рассмотрения плат становится ясно, что это сделано для экономии текстолита.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 18 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 19

Для Windows использовались последние драйверы с сайта компании. Их версия — 1.2.905.2001. Опций настроек тут несколько меньше, чем в предыдущем случае, а размер Jumbo Frame задается дискретно и может принимать значения 1514, 4088, 9014, 10000, 16128.

Хотя на сайте компании SMC выложены драйвера для ОС Linux, при тестировании использовался драйвер из ядра ОС (тот же, что и в предыдущих случаях). Это связано с тем, что родной драйвер достаточно старый (середины 2001 года).

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 20

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 21 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 22

Второй адаптер от SMC Networks — SMC9462TX — обладает практически теми же характеристиками, что и предыдущий, но использует 64-битную PCI (и соответственно другой микроконтроллер Gigabit Ethernet). Все утверждения относительно драйверов аналогичны предыдущей карте.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 23

Последняя двух-чиповая карта в обзоре — LNIC-1000T(64) от компании LG Electronics.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 24 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 25

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 26

Карта обладает 64-битным PCI интерфейсом. x На трансивере присутствует радиатор. На карте установлено шесть светодиодных индикаторов с функциями, аналогичными адаптеру TEG-PCITX.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 27 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 28

Для ОС Windows использовались прилагаемые с картой драйверы, так как на сайте компании новые драйверы отсутствовали. Судя по их виду, использовались референсные драйверы (опять же аналогично TEG-PCITX) с теми же функциями. Их версия — 5.01.24.

Драйверы для Linux присутствовали только для версии ядер 2.2.х, поэтому для тестирования использовался тот же драйвер, встроенный в ОС.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 29

Следующий адаптер — Hardlink HA-64G — от MAS Elektronik AG с 64-битным интерфейсом.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 30 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 31

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 32

На карте установлено три светодиодных индикатора, которые показывают скорость 10/100/1000 Мбит и наличие линка. А при передаче данных индикатор мерцает.

Эта карта наиболее интересна, так она одночиповая и на ней установлен новый контроллер AC1001KPB от Altima. На контроллер установлен радиатор.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 33 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 34

На сайте компании новые драйверы тоже отсутствовали, поэтому для Windows использовались драйверы версии 3.12.0.0, поставляемые с картой. Драйвер предоставляет не очень много опций для настройка адаптера. Размеры Jumbo Frame задаются дискретно и принимают значения 1500, 2000, 3000 и 4000. Выше нельзя.

Драйверы для Linux то же поставлялись с картой, они успешно собрались и система увидела адаптер. Но дальше нас поджидала неприятность — драйвер отказывался изменять размеры MTU в стороны увеличения от 1500. Быстрый поиск в исходном коде драйвера на наличие переопределения единого лимита ничего не дал. Возможно Jumbo фреймы все же можно как то включить (исходном коде драйвера много переменных, относящихся к Jumbo), но об этом нигде не написано. Поэтому этот адаптер в ОС Linux тестировался только на размерах пакета 1500, то есть без Jumbo фреймов.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 35

B последняя в этом обзоре карта — Intel PRO/1000 MT Desktop от Intel Corporation. Она уже тестировалась в предыдущем обзоре, но теперь протестирована заново на новых версиях драйверов.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 36 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 37

Повторю некоторую информацию о ней. Это одночиповое решение, собранное на микроконтроллере Intel 82540EPВр. Карта имеет два светодиодных индикатора, один из которых показывает наличие линка и передачи данных, а второй (двухцветный) — скорость работы 10/100/1000 Мбит. Некоторые параметры микроконтроллера:

  • поддержка скорости 10/100/1000 Мбит в режимах полу- и полного дуплекса;
    Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 38
  • MDI-X — автодетектирование прямого и кросс кабеля;
  • автодетектирование длины кабеля;
  • конфигурируемые очереди FIFO на прием и передачу, размером 64 КБ;
  • очереди приема/передачи с низким временем ожидания;
  • передача до 64 дескрипторов пакетов по шине за операцию;
  • программируемые буфера приема размером от 256 байт до 64 КБ;
  • ускорение обсчета контрольных сумм кадров протоколов IP, TCP, и UDP.
  • поддержка IEEE 802.1Q VLAN c установкой и удалением VLAN-тэгов, а также пакетная фильтрация до 4096 VLAN тагов;
  • средства контроля для уменьшения количества прерываний при работе;
  • поддержка Jumbo-фреймов размером до 16 КБ.
Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 39 Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 40

Последние версии драйверы для обоих ОС брались с сайта компании. Версия драйвера в Windows 2000 — 6.4.16, он предоставляет богатые возможности по конфигурированию адаптера. Размер Jumbo Frame задается дискретными значениями в 4088, 9014 и 16128 байт.

Linux-драйвер версии 4.4.19 собрался и заработал без проблем. Отмечу только, что работать он может только в виде модуля.

Методика тестирования

В качестве тестовых стендов использовались два компьютера со следующими параметрами:

  • Pentium 4 1,8 ГГц и 2,2 ГГц;
  • Память 512 MБ;
  • Жесткий диск Maxtor 20 ГБ;
  • ОС Windows 2000 с установленным сервис-паком версии 3 и Linux Red Hat 7.3 с ядром версии 2.4.19

Компьютеры напрямую (без использования коммутатора) соединялись пятиметровым кабелем категории 5е (практически идеальные условия).

В Windows 2000 для генерации TCP трафика и снятия показаний использовались программы Iperf версии 1.2 и NTttcp из Windows 2000 DDK. Программы запускались для снятия показателей скорости передачи данных и загрузки процессора при размерах Jumbo Frame

  • 1514 байт (Jumbo-фреймы отсутствуют);
  • 3014 байт;
  • 6014 байт;
  • 9014 байт;
  • 16128 байт.

Естественно, что карты, не поддерживающие определенные размеры Jumbo фреймов, эти тесты пропускали.

Кроме этого, Iperf запускался в режиме генерации UDP трафика. При этом устанавливалась скорость потока UDP трафика в 200 Мбит, которая в цикле увеличивалась до 800 с шагом в 10 Мбит. После окончания теста, в результат записывалась максимальная полученная скорость.

Также осуществлялся небольшой тюнинг ОС. Параметры запуска программ и установки реестра следующие:

  • Максимальный размер пакета 1514 байт (Jumbo Frame отсутствуют)

    Hkey_Local_MachineSystemCurrentControlSetServicesTcpipParameters
    TcpWindowSize = ffff

    Параметры запуска Iperf в режиме TCP:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 64K -l 24K
    сервер: iperf -s -m -M 100000 -w 64K -l 24K

    Параметры запуска Iperf в режиме UDP:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 64K -l 24K -u -b 200M
    сервер: iperf -s -m -M 100000 -w 64K -l 24K -u

    Параметры запуска NTttcp:
    передатчик: ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    приемник: ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -n 10000

  • Размер пакета 3014, 6014, 9014 и 16128 байт (включены Jumbo Frame)

    Hkey_Local_MachineSystemCurrentControlSetServicesTcpipParameters
    TcpWindowSize = 20971520 (20 Мб)
    Tcp1323Opts = 3

    Параметры запуска Iperf в режиме TCP:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 1M -l 24K
    сервер: iperf -s -m -M 100000 -w 1M -l 24K

    Параметры запуска Iperf в режиме UDP:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 1M -l 24K -u -b 200M
    сервер: iperf -s -m -M 100000 -w 1M -l 24K -u

    Параметры запуска NTttcp:
    передатчик: ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    приемник: ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -rb 20000000 -n 10000

Каждый TCP тест запускался 15 раз, после чего выбирался лучший (по скорости) результат. В случае NTttcp загрузка процессора измерялась встроенными средствами программы, а в Iperf — с помощью системного монитора Windows 2000.

В ОС Linux для генерации трафика и снятия показаний использовалась программа netPIPE версии 2.4. Программа осуществляет генерацию трафика с постепенно возрастающим размером пакета данных (пакет размера N передается несколько раз, количество передач обратно пропорционально его размеру, но не меньше семи). Эта схема позволяет наглядно увидеть процент использования канала в зависимости от размера передаваемых данных.

Изменение размера Jumbo Frame осуществлялось через изменение MTU в настройках сетевого интерфейса командой
ifconfig eth0 MTU $size up
При тестировании устанавливались следующие размеры MTU:

  • 1500 байт (Jumbo фреймы отсутствуют);
  • 3000 байт;
  • 6000 байт;
  • 9000 байт;
  • 16128 байт.

Параметры запуска netPIPE:
приемник: NTtcp -b 65535 -o logfile -P -r
передатчик: NTtcp -b 65535 -o logfile -P -t

Результаты тестирования

Адаптеры от SMC тестировались как на своем драйвере, так и на референсном (изначально предназначенном для TEG-PCITX). Эти адаптеры собраны на одинаковых микропроцессорах, поэтому драйвера совместимы. Вот только родной драйвера от SMC показывает несколько худшую производительность и большую загрузку процессора. Остальные адаптеры тестировались на своих родных драйверах.

1. Windows 2000, скорость передачи данных.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 41

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 42

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 43

2. Windows 2000, загрузка процессора.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 44

Intel PRO/1000 MT Desktop вырывается вперед практически во всех тестах, явно программисты из Intel неплохо поработали над новыми драйверами. Но вот при размере Jumbo фрейма в 16128, адаптер от Intel резко теряет свое приемущество и показывает наименьшую скорость. Второе место получил адаптер Hardlink HA-64G, явно сказывается наличие нового микроконтроллера (карта одночиповая).

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

Несколько разочаровал тест UDP. В нем явно где то образовалось узкое место, так как результаты большинства адаптеров очень близки. Возможно, проблема в самой реализации этого теста в Iperf.

3. Linux, изменяем размер MTU.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 45

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 46

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 47

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 48

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 49

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 50

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 51

Ожидаемая картина у всех карт, кроме Intel PRO/1000 MT Desktop. Видимо, программисты не до конца потрудились — С увеличением размера Jumbo фрейма скорость передачи данных растет лишь до определенного момента. При размере Jumbo Frame 16000, скорость почему-то резко падает. Так же наглядно видно, что отличие в скорости между одинаковыми картами, но разными PCI интерфейсами минимально.

4. Linux, сравнение производительности на одинаковом размере MTU.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 52

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 53

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 54

Intel PRO 1000/MT лидирует на малых размерах фреймов, но при размере 6000 все карты показывают уже приблизительно одинаковые результаты. А вот на размере Jumbo Frame в 3000 произошло абсолютно непонятное падение скорости у TRENDnet TEG-PCITX.

И последняя диаграмма сравнение пиковых скоростей всех адаптеров в netPIPE. Опять замечу, что скорость в Linux получается немного больше, чем в Windows. Но на самом деле это не совсем корректное сравнение, так как тут приводится пиковая скорость.

Тестирование гигабитных сетевых адаптеров на 32-битной шине PCI:, фото 55

Выводы

Jumbo фреймы безусловно вещь полезная, отключать их не стоит. Но скорость еще сильно зависит от драйвера, это наглядно видно на примере адаптера Intel PRO 1000/MT. По сравнению с предыдущим тестированием ее скорость возросла. И конечно мы все равно не можем достигнуть максимума (гигабита) из-за узкого горлышка — 32-битной PCI шины. Тем не менее серверные (64-битные) адаптеры были протестированы на 32-битной PCI шине для наглядного сравнения обоих версий карт между собой. Как видно из диаграмм, на 32-битной шине отличий практически нет.

Адаптер Intel PRO/1000 MT Desktop предоставлен представительством компании Intel
Адаптер LG LNIC-1000T(64) предоставлен компанией ОЛДИ
Адаптер Hardlink HA-64G предоставлен компанией MAS Elektronik AG
Адаптеры SMC94x2TX предоставлены компанией SMC NetworksG
Адаптеры TRENDnet TEG-PCITXx предоставлены компанией MultiCo ltdu

Комментарии

правилами