Aquantia AQtion AQC107 против Intel X550-T2 - сравниваем 10G интерфейсы в файловых операциях iSCSI и CIFS
Молодая компания Aquantia ещё 2-3 года назад никому не была известна, а сегодня её сетевые контроллеры стали пропуском в мир 10-гигабитных сетей для тысяч геймеров по всему миру. Этот бренд вышел на рынок с интересной идеей: «не у всех есть кабели 6-й категории, которые могут потянуть скорость в 10 Гигабит в секунду, поэтому там где дорогие сетевые карты умеют либо 10G либо 1G, наши соединяются и на 2.5G и на 5G, а ещё они дешёвые и почти не греются. Да, мы не будем вам говорить, что для соединения на 2.5G/5G с противоположной стороны провода тоже должен быть чип, поддерживающий стандарт NBASE-T, но кому это важно вообще? У нас же 10G сетевуха за 150$ в розницу!».
Конечно, этот продукт рассчитан в первую очередь на энтузиастов-геймеров, но из-за своей низкой стоимости, чипы Aquantia получили распространение и в настольных NAS-ах сегмента SmB, и в рабочих станциях Dell Optiplex 7050, их выбрала Nvidia, Asus, Gigabyte, ASRock и многие другие.
На своём сайте компания с гордостью пишет, что её сетевые контроллеры предназначены для клиентских компьютеров Enterprise-сегмента, то есть как раз для тех самых рабочих станций, которым нужен быстрый файлообмен с сервером. Недавно мы тестировали игровую материнскую плату ASrock Taichi X470 Ultimate, на которой был установлен установлен сетевой контроллер Aquantia AQC107, и мы как-то обошли стороной сетевую производительность устройства. В этой статье я исправляю это упущение, чтобы показать вам, пошатнулись ли позиции Intel и Mellanox в сегменте 10G сетей, или эти гиганты и дальше могут спать спокойно.
Конфигурация тестового стенда:
Сервер:
- Intel Xeon E5-2603 v4
- 32 Gb RAM ECC DDR4-2400 RDIMM
- Материнская плата Asrock Rack EPC612D4U-2T8R
- Гипервизор VMware ESXi 6.7
- Сетевая карта - встроенная Intel X540-T2 в режиме PCIe Passthrough
- Жёсткие диски - 3 x 10k SAS Seagate Savvio 10K6. Стенд настроен таким образом, что они в тестировании не участвуют и на скорость не влияют.
- Операционные системы:
- FreeNAS 11.2 для Samba доступа (16 Gb RAM для LARC), RAID Z1, LZ4 off, Dedupe off.
- Windows Server 2016 (8Gb iSCSI LUN на RAMDISK)
Клиент:
- AMD Ryzen 5 1600
- 16 Gb RAM DDR4 3000 MHz
- ASRock X470 Taichi Ultimate
- Сетевая карта - встроенная Aquantia AQtion AQC 107
- Дискретная Intel X550-T2
- Программное обеспечение:
- Windows 10 x64 Корпоративная
- IOmeter для iSCSI
- CrystalDisk Benchmark для CIFS
На сервере установлена 10-гигабитная плата Intel X540-T2, которая в режиме PCIe Passthrough презентовалась гостевой операционной системе под её родные драйверы. На клиенте - 2 сетевых карты: встроенная Aquantia AQC107 и дискретная Intel X550-T2. Они по очереди подключались одним и тем же кабелем к одному и тому же порту сервера, чей софт был настроен таким образом, чтобы не использовать дисковую подсистему, а работать из памяти.
Intel-овская карта рассчитана на виртуализацию. Она поддерживает режим аппаратного разделения ресурсов SR-IOV, имеет алгоритмы снижения нагрузки на CPU при использовании в виртуальных средах, на уровне драйвера можно настроить объединение портов в режиме 802.3ad. В контроллере от Aquantia ничего этого нет, даже нет модного софта для ускорения игр, которым щеголяют некоторые производители премиальных материнских плат. Даже аппаратного мониторинга, чтобы глянуть, как там поживает сетевой контроллер, в драйверах под Windows нет, а у Intel-а - есть.
Сказать по-правде, я ожидал, что мы упрёмся в гигабайт в секунду и будем подсчитывая крохи, смотреть на сотые доли процента в разнице по скорости, но я ошибся. В современных серверных сетевых картах уже мало кто обращает внимание на встроенные движки Offload, считая, что процессор справится с любым трафиком iSCSI и NFS, но базовый принцип разгрузки самих TCP-пакетов применяется во всех платах, даже в самых дешёвых интегрированных Intel i350. Ни у Intel X550-T2, ни у AQtion AQC-107 не заявлена ни разгрузка iSCSI, ни NFS, а по спецификациям чипы имеют следующие алгоритмы offload-а:
- Aquantia AQC107: MSI, MSI-X, LSO, RSS, контрольные суммы IPv4/IPv6
- Intel X550-T2: MSI, MSI-X, Tx/Rx, IPSec, LSO контрольные суммы IPv4/IPv6.
Но конечно, никто не говорит о производительности самого процессора сетевой карты, а ведь здесь всё очень и очень просто: на скоростях выше 1 Гбит/с уже имеет значение количество сетевых пакетов, которые формируют файловый трафик. Чем больше пакетов передаётся в секунду, тем тяжелее сетевой карте, и тем мощнее должен быть её процессор. Отчасти задача мощности сетевой карты решается поддержкой больших кадров Jumbo Frame, которая по умолчанию отключена на любом сетевом оборудовании в угоду совместимости. Увеличиваем размер пакета - и на тот же объём трафика снижаем их количество, облегчая работу сетевому интерфейсу и повышая его скорость. Если не настраивать размер пакета, то и в Windows, и в Linux и в FreeBSD он составляет 1500 байт, а это - огромная нагрузка на сетевую карту в режиме файлового сервера.
Тестирование
Первый тест - с настройками операционных систем по умолчанию (MTU=1500). Мы будем использовать простой и наглядный Crystaldisk Benchmark с минимальным тестовым файлом в 50 Мб, который полностью поместится в кэш FreeNAS.
Разница в скорости чтения - колоссальная. За счёт более быстрого процессора и хороших драйверов Intel X550-T2 не оставляет ни единого шанса малоизвестному интегрированному чипу.
Тесты iSCSI подтверждают увиденное - если в вашей сети параметр MTU запрещено менять по соображениям совместимости, никакая Aquantia вам не заменит проверенный годами Intel. Дорогая серверная X550-T2 даёт почти трекратный перевес по скорости, но вообще-то для 10G эти цифры - не скорость, а позор. Поэтому увеличим значение MTU на всех трёх сетевых картах сначала до 9014 байт. Кстати, это значение - максимум, что позволяют выставить драйверы Intel под Windows 10. У Aquantia AQtion здесь максимум - 16 Кб, так что для неё выставим оба значения.
Ситуация не просто выправляется, но позволяет тёмной лошадке вырваться вперёд на операциях чтения с обоими значениями MTU.
В iSCSI тесте мы смогли выставить MTU только на уровне 9014 из-за ограничений драйвера под Windows, и в этом тесте снова победу одержал чип от Aquantia.
Что касается загрузки процессора, то в обоих случаях и сами значения этого параметра, и разница между чипами не существенны. Напомню, что для клиента мы использовали десктопный AMD Ryzen 5 1600 с 12 потоками.
Цена вопроса
В среднем, 1-портовая сетевая карта на чипе Aquantia AQC107 стоит 155$, в России можно искать платы производства Asus или GIgabyte, созданные для геймеров. Intel X550-T1 с одним сетевым портом в России стоит примерно 300$, двухпортовая - в районе 330-350$. На Ebay можно купить X550 вдвое дешевле, но велик риск нарваться на подделку, а как отличить оригинальную сетевую карту Intel от перепаянной китайскими умельцами, читайте в нашей статье.
Поддержка со стороны операционных систем
У Intel-а значительно лучше дела с драйверами. Сетевые карты X550-T2 стоят так дорого в том числе и потому, что из коробки поддерживаются гипервизорами VSphere 6.7, всеми Linux-ами и любым другим софтом. Aquantia требует ручной установки драйверов, которые нужно скачивать с сайта производителя, а о поддержке ESXi 6.7 не идёт и речи.
Выводы
Мы рассмотрели вполне типичную ситуацию, в которой СХД работает в виртуальной среде под управлением FreeBSD или Windows и предоставляет блочный или файловый доступ рабочей станции. Со стороны клиентской машины, Aquantia AQC107 выигрывает по скорости и по цене и единственное, что требуется от сисадмина - это выставить MTU на 9K или ещё больше.
В то же время, для серверной части сетевые карты типа Intel X550/X540/X710 сохраняют за собой два существенных преимущества, которых нет у Aquantia - это поддержка со стороны любой операционной системы и технология SR-IOV, которая, в общем-то, мало где востребована.
В любом случае, посмотрев на результаты дисковых операций с большой очередью команд, все сомнения отпадают - AQTion AQC107 - победитель нашего сравнения.
P.S. я не могу сказать, почему в наших тестах мы не достигли максимальной пропускной способности 10-гигабитного канала. Теоретически тест "память-сеть-память" должен был уйти выше 1 Гб/с, но мы с трудом вышли на 700 мегабайт в секунду. Возможно, это как-то связано с поддержкой Intel X540-T2 на сервере, или с высоким overhead-ом гипервизора.
Михаил Дегтярёв (aka LIKE OFF)
29/09.2018