<
  • Главная
Статьи

Тестування гігабітних мережевих адаптерів на шині 32-біт PCI

  1. список плат
  2. Методика тестування
  3. Результати тестування
  4. висновки

Ми продовжуємо цикл тестування гігабітних мережевих адаптерів. Сьогодні будуть розглянуті плати, призначені як для 32 біт PCI шини, так і плати з інтерфейсом 64 біт PCI, але назад сумісні з 32-бітної шиною. Це саме та PCI шина, що розпаяна на материнських платах звичайних комп'ютерів. Наявність 64-біт PCI поки (?) Є привілеєм серверних материнських плат. Вони призначені для інших завдань, зазвичай багатопроцесорні і природно сильно дорожче.

Теорія про гігабітному Ethernet (Gigabit Ethernet) була розглянута в попередній статті . Ця стаття її продовженням, і крім того, в ній трохи модифікована методика тестування адаптерів.

список плат

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

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

А ось мікроконтролери встановлені на цих картах, і є 10/100/1000 Мбіт Ethernet контролерами, що зв'язують мережеву карту з шиною PCI, розрізняються залежно від битности шини PCI. На 64-бітних адаптери встановлені контролери DP83820BVUW, на 32-бітних - DP83821BVM. В принципі, їх єдине глобальне відміну, це розрядність PCI шини, з якої вони працюють. Інші характеристики однакові:

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

При установки драйверів під ОС Windows у всіх цих п'яти карт виліз кумедний баг - після перезавантаження або пошуку на наявність нових пристроїв, з'являлося невідоме додаткове При установки драйверів під ОС Windows у всіх цих п'яти карт виліз кумедний баг - після перезавантаження або пошуку на наявність нових пристроїв, з'являлося невідоме додаткове   PCI пристрій, який нічим не ідентифікувалися і драйвер карти, який я намагався йому підсунути, не сприймала PCI пристрій, який нічим не ідентифікувалися і драйвер карти, який я намагався йому підсунути, не сприймала. Проте, адаптери нормально працювали і інших багів (в роботі) помічено не було.

Перша карта TRENDnet TEG-PCITX від компанії TRENDware .

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

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

У драйвері присутні багаті можливості настройки і тюнінгу карти, а розмір Jumbo Frame можна задавати вручну з кроком 1, наскільки великий розмір можна виставити, чи не з'ясовувалося. Але з розміром фрейму 16128, який був максимальним в тестах, адаптер працював нормально.

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

Друга карта - TRENDnet TEG-PCITX2 - від тієї ж компанії, але з інтерфейсом 64-біт PCI. Крім цього, використовується більш стара ревізія мікроконтролера - DP83820BVUW. Трансівер теж оснащений радіатором.

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

Наступні дві карти - від компанії SMC Networks . Обидві вони двох-чіпові і зібрана на вищеописаних мікроконтролерах. На обох картах радіатори відсутні.

Карта SMC9452TX володіє 32-бітовим інтерфейсом PCI і має 5 індикаторів, три з яких повідомляють про швидкість роботи, а два залишилися про наявність линка і активності. У обох адаптерів цікавий дизайн PCB - з боку інтерфейсного Ethernet роз'єму спостерігається невеликий зріз, а з іншого боку - незрозумілий виступ. Хоча після уважного розгляду плат стає ясно, що це зроблено для економії текстоліту.

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

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

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

Остання двох-чиповая карта в огляді - LNIC-1000T (64) від компанії LG Electronics .

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

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

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

Наступний адаптер - Hardlink HA-64G - від MAS Elektronik AG з 64-бітовим інтерфейсом.

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

Ця карта найцікавіша, так вона одночіпова і на ній встановлений новий контролер AC1001KPB від Altima. На контролер встановлений радіатор.

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

Драйвери для Linux той же поставлялися з картою, вони успішно зібралися і система побачила адаптер. Але далі нас чекала неприємність - драйвер відмовлявся змінювати розміри MTU в сторони збільшення від 1500. Швидкий пошук в вихідному коді драйвера на наявність перевизначення єдиного ліміту нічого не дав. Можливо Jumbo фрейми все ж можна як то включити (вихідному коді драйвера багато змінних, що відносяться до Jumbo), але про це ніде не написано. Тому цей адаптер в ОС Linux тестувався тільки на розмірах пакета 1500, тобто без Jumbo фреймів.

B остання в цьому огляді карта - Intel PRO / 1000 MT Desktop від Intel Corporation . Вона вже тестувалася в попередньому огляді, але тепер протестована заново на нових версіях драйверів.

Повторю деяку інформацію про неї. Це одночіпове рішення, зібране на мікроконтролері Intel 82540EPВр. Карта має два світлодіодних індикатора, один з яких показує наявність линка і передачі даних, а другий (двоколірний) - швидкість роботи 10/100/1000 Мбіт. Деякі параметри мікроконтролера:

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

Linux-драйвер версії 4.4.19 зібрався і заробив без проблем. Зазначу тільки, що працювати він може тільки у вигляді модуля.

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

В якості тестових стендів використовувалися два комп'ютера з наступними параметрами:

  • Pentium 4 1,8 ГГц і 2,2 ГГц;
  • Пам'ять 512 Мб;
  • Жорсткий диск 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, швидкість передачі даних.

2. Windows 2000, завантаження процесора.

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

Решта п'ять карт показують приблизно однакові результати. Засмутили адаптери SMC на рідних драйвери - при порівнянній із загальною масою адаптерів швидкістю, завантаження процесора в обох карт вище середньої. Особливо це помітно в режимі з відключеними Jumbo фреймами. Але при використанні референсних драйверів, ситуація вирівнювалася. Напевно ситуація буде виправлена ​​з виходом нової версії драйвера, а поки варто використовувати референсні.

Кілька розчарував тест UDP. У ньому явно десь утворилося вузьке місце, так як результати більшості адаптерів дуже близькі. Можливо, проблема в самій реалізації цього тесту в Iperf.

3. Linux, змінюємо розмір MTU.

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

4. Linux, порівняння продуктивності на однаковому розмірі MTU.

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

І остання діаграма порівняння пікових швидкостей всіх адаптерів в netPIPE. Знову зауважу, що швидкість в Linux виходить трохи більше, ніж в Windows. Але насправді це не зовсім коректне порівняння, так як тут наводиться пікова швидкість.

висновки

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



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью