Новые и старые пользователи Carbon Reductor часто просят дать рекомендацию по подбору оборудования, причём довольно таки конкретную.
Увы, тестированием большого количества разного железа в рамках компании мы заняться не можем, но хотя бы попробуем составить список уже используемого оборудования, которое ни разу не напрягало после соответствующих настроек.
Сетевые карты
Многие сетевые карты не могут до конца закрыть свой потенциал из коробки и часто приходится их немного тюнить. Не стоит считать что если вы засунули классную и дорогую 10гбит/с карту в сервер, то потерь точно не будет.
Однако после грамотной настройки на многих сетевых картах можно добиться очень высокой производительности.
Melanox
Все модели этого производителя очень хорошо зарекомендовали себя для работы в системе фильтрации.
Mellanox Technologies MT27520 Family [ConnectX-3 Pro]
Одна из лучших сетевых карт, с которыми доводилось иметь дело.
Имеет несколько очередей и большой rx-буфер.
[root@carbon2 carbon]# ethtool -l eth2
Channel parameters for eth2:
Pre-set maximums:
RX: 128
TX: 32
Other: 0
Combined: 0
Current hardware settings:
RX: 8
TX: 12
Other: 0
Combined: 0
Но есть небольшая особенность, доставляющая небольшие неудобства в системах с 6 ядрами на процессор: не удаётся задать число RX-очередей не кратное степени двойки. При задании, к примеру 6, работают только 4 очереди, а две не получают прерывания. На 4, 8 и 16 ядерных процессорах всё идеально.
Broadcom / Emulex
NetXtreme BCM5720
Emulex Corporation OneConnect 10Gb NIC (be3) (rev 02) / Emulex Corporation Device e729
Максимальный RX-буфер: 1024
По умолчанию имеет 4 очереди и это её максимум.
На процессоре 2.5GHz и оперативной памяти DDR3 1333MHz потери появляются где-то после 1.3Гбит/сек.
[root@carbon ~]# ethtool -l eth0 Channel parameters for eth0: Pre-set maximums: RX: 0 TX: 0 Other: 0 Combined: 4 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 3 [root@carbon ~]# ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 1024 RX Mini: 0 RX Jumbo: 0 TX: 2048 Current hardware settings: RX: 1024 RX Mini: 0 RX Jumbo: 0 TX: 2048
Из коробки иногда не хватает значения rx_frag_size, из-за чего растёт счётчик dropped пакетов, но решается очень просто:
echo options be2net rx_frag_size=8192 > /etc/modprobe.d/be2net.conf reboot
Intel
Хоть они и хороши, если возникнут проблемы - есть статья.
1Гбит/сек
I210
Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03), Subsystem: Super Micro Computer Inc Device 1533
Максимальный RX-буфер: 4096
По умолчанию 4 rxtx очереди на 4 ядрах
Внимание: Иногда имеет проблемы при работе на дефолтном модуле ядра. В одном случае с 2xVlan в зеркале это удалось победить установкой последней версии драйвера, собранного с опцией IGB_NO_LRO.
I211
Ethernet controller: Intel Corporation I211 Gigabit Network Connection
I350
82576
10Гбит/сек
82599ES, 82599EB
Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Максимальный RX-буфер: 4096
Поддерживает многоочерёдность
2 порта под SFP
82599EN
То же, что и выше, но 1 порт под SFP