h1. Сетевые карты
Наша компания давно работает с интернет провайдерами. Несмотря на то что мы пишем софт, нам часто приходится помогать своим клиентам решать проблемы с оборудованием. Так вот - мы настолько намучались с D-Link / Realtek / другими дешёвыми сетевыми картами за последние десять лет, что категорически рекомендуем не использовать их для чего-то кроме рабочих станций.
Возможно как железо они не так уж и плохи, но дело в их драйвере:
# Одна очередь на rxtx, вне зависимости от числа доступных ядер процессора.
# Отсутствие возможности задать параметры размеров ring-буферов сетевой карты (маленький буфер приводит к потерям)
# Отсутствие возможности задания coalesce-параметров, нам важен rx-usecs, за счёт его уменьшения можно снизить нагрузку с сетевой карты, увеличив нагрузку на процессор.
# Отсутствие поддержки NAPI драйвером.
h2. Разное
* VIA Technologies, Inc. VT6105/VT6106S \[Rhine-III\] (rev 86)
h2. Intel
* 82541PI Gigabit Ethernet Controller (rev 05)
* 82574L Gigabit Network Connection
* 82540EM Gigabit Ethernet Controller (rev 03)
* 82545EM
* 82579LM
Хоть мы и рекомендуем Intel, но конкретно эти модели брать не советуем.
Только одна очередь, в итоге всем будет заниматься только одно ядро процессора.
Для десктопа - хороша (и наверное дешёвая довольно), но для сервера фильтрации - не очень.
h2. Broadcom
* Broadcom Corporation NetXtreme BCM5721
* Broadcom Corporation NetXtreme BCM5722
h2. NVIDIA
* Corporation MCP55 Ethernet (rev a3)
Проблемы:
* только одна очередь
* при указании диапазона ядер smp_affinity_list использует только первое ядро (плохой драйвер)
* нет возможности указывать coalesce параметры.
В результате даже при небольшом объёме трафика даёт очень высокую нагрузку на ядро процессора, которое занимается обработкой трафика с этой сетевой карты что приводит к неприемлемо медленной обработке пакетов.
{code}
29: 360056 0 3486921273 0 PCI-MSI-edge eth1
Pre-set maximums: RX: 16384 Current hardware settings: RX: 2048
Cannot get device coalesce settings: Operation not supported
≈75 mbit/sec 26364 pkts/sec
{code}
h2. Qualcomm / Atheros
* Qualcomm Atheros AR8151 v2.0 Gigabit Ethernet (rev c0)
h1. Одноядерные процессоры
Мощность процессора - одна из самых важных для Carbon Reductor характеристик сервера. Одно ядро часто приводит к шторму прерываний, а в итоге к потерям.
Желательно использовать процессор с современной микроархитектурой (Sandy Bridge и новее)
Наша компания давно работает с интернет провайдерами. Несмотря на то что мы пишем софт, нам часто приходится помогать своим клиентам решать проблемы с оборудованием. Так вот - мы настолько намучались с D-Link / Realtek / другими дешёвыми сетевыми картами за последние десять лет, что категорически рекомендуем не использовать их для чего-то кроме рабочих станций.
Возможно как железо они не так уж и плохи, но дело в их драйвере:
# Одна очередь на rxtx, вне зависимости от числа доступных ядер процессора.
# Отсутствие возможности задать параметры размеров ring-буферов сетевой карты (маленький буфер приводит к потерям)
# Отсутствие возможности задания coalesce-параметров, нам важен rx-usecs, за счёт его уменьшения можно снизить нагрузку с сетевой карты, увеличив нагрузку на процессор.
# Отсутствие поддержки NAPI драйвером.
h2. Разное
* VIA Technologies, Inc. VT6105/VT6106S \[Rhine-III\] (rev 86)
h2. Intel
* 82541PI Gigabit Ethernet Controller (rev 05)
* 82574L Gigabit Network Connection
* 82540EM Gigabit Ethernet Controller (rev 03)
* 82545EM
* 82579LM
Хоть мы и рекомендуем Intel, но конкретно эти модели брать не советуем.
Только одна очередь, в итоге всем будет заниматься только одно ядро процессора.
Для десктопа - хороша (и наверное дешёвая довольно), но для сервера фильтрации - не очень.
h2. Broadcom
* Broadcom Corporation NetXtreme BCM5721
* Broadcom Corporation NetXtreme BCM5722
h2. NVIDIA
* Corporation MCP55 Ethernet (rev a3)
Проблемы:
* только одна очередь
* при указании диапазона ядер smp_affinity_list использует только первое ядро (плохой драйвер)
* нет возможности указывать coalesce параметры.
В результате даже при небольшом объёме трафика даёт очень высокую нагрузку на ядро процессора, которое занимается обработкой трафика с этой сетевой карты что приводит к неприемлемо медленной обработке пакетов.
{code}
29: 360056 0 3486921273 0 PCI-MSI-edge eth1
Pre-set maximums: RX: 16384 Current hardware settings: RX: 2048
Cannot get device coalesce settings: Operation not supported
≈75 mbit/sec 26364 pkts/sec
{code}
h2. Qualcomm / Atheros
* Qualcomm Atheros AR8151 v2.0 Gigabit Ethernet (rev c0)
h1. Одноядерные процессоры
Мощность процессора - одна из самых важных для Carbon Reductor характеристик сервера. Одно ядро часто приводит к шторму прерываний, а в итоге к потерям.
Желательно использовать процессор с современной микроархитектурой (Sandy Bridge и новее)