Просмотр Исходного

h2. Кратко

Для Carbon Reductor в сервере в основном важны три вещи: хорошие сетевые карты, хороший процессор и хорошая оперативная память.

{info}
Carbon Reductor должен использовать сервер исключительно один, несогласованное программное обеспечение устанавливать *запрещено*.

Для установки требуется *минимум 50Гб* свободного места на диске. Рекомендуемый объём диска - 500Гб и более.

Перед вводом сервера в эксплуатацию обязательно *отключите все опции связанные с энергосбережением* в BIOS/UEFI
{info}\\

{toc}

h2. Рекомендуемые конфигурации

Все представленные примеры подобраны с учётом "поставить и не беспокоиться ни за один потенциально потерянный пакет", то есть имеет место запас производительности. При появлении новых требований Роскомнадзора по фильтрации трафика продукт может изменяться и требования для надёжной работы будут изменяться соответственно. Данные указаны по суммарному объёму отправляемого для анализа зеркала трафика.
|| Нагрузка, до гбит/сек || Ориентировочная цена || Тип сервера || Процессор || Оперативная память || Материнская плата, платформа || Сетевые карты ||
| 1 | 42000{color:#222222}₽ / {color}{color:#000000}$630{color} | ATX | 1 x Intel Core i3 8100 3.6GHz, 4 ядра | 1 x 8Gb DDR4 2400MHz | H310M или любая другая с LGA1151v2 сокетом | 1 х Intel I350-T2, 1Гбит/сек, RJ45 |
| 1 | 108000{color:#222222}₽ / {color}{color:#000000}$1600{color} | 1U | 1 x Intel Xeon E3-1240v6, 3.7GHz, 4 ядра | 2 x 4Gb DDR4 2133MHz, ECC | SL1000/1U2G4 | 1 x Intel I350-T2, 1Гбит/сек, RJ45 |
| 2 | 45000{color:#222222}₽ / $670{color} | ATX | 1 x Intel Core i3 8350k, 4GHz, 4 ядра | 1 x 8Gb DDR4 2400MHz | H310M или любая другая с LGA1151v2 сокетом | 1 х Intel I350-T2, 1Гбит/сек, RJ45 |
| 2 | 123500{color:#222222}₽ / $1840{color} | 1U | 1 x Intel Xeon E3-1285v6, 4.1GHz, 4 ядра | 2 x 4Gb DDR4 2133MHz, ECC | SL1000/1U2G4 | 1 x Intel I350-T2, 1Гбит/сек, RJ45 |
| 3 | 55000{color:#222222}₽ / $820{color} | ATX | 1 x Intel Core i5-9600k, 3.7GHz, 6 ядер | 1 x 8Gb DDR4 2400MHz | H310M или любая другая с LGA1151v2 сокетом | 1 x Intel 82599en, single port, 10Гбит/сек, SFP\+ |
| 3 | 260000{color:#222222}₽ / $3900{color} | 1U | 1 x Intel Xeon E5-1680v6, 3.4GHz, 8 ядер | 1x8Gb DDR4 2400MHz, ECC | SL1500/1U2G4 | 1 x Intel 82599, dual port, 10Гбит/сек, SFP\+ |
| 4 | 70500{color:#222222}₽ / $1050{color} | ATX | 1 x Intel Core i7 9700k, 3.6GHz, 8 ядер | 1 x 8Gb DDR4 2400MHz | H310M или любая другая с LGA1151v2 сокетом | 1 x Mellanox ConnectX-3 MCX311A-XCCT, single-port, 10Гбит/сек |
| 5 | 458000{color:#222222}₽ / $6850{color} | ATX | 2 x Intel Xeon E5-2667 V4, 3.2GHz, 8 ядер | 2 x 8Gb DDR4 2400MHz | HP Proliant ML350 G9 SFF CTO | 2 x Mellanox ConnectX-3 MCX311A-XCCT, single-port, 10Гбит/сек |
| 5 | 568000{color:#222222}₽ / $8500{color} | 2U | 2 x Intel Xeon E5-2667V4, 3.2GHz, 8 ядер | 2 x 8Gb DDR4 2666MHz ECC | SL2500/2U8LG3 | 2 x Intel 82599, dual port, 10Гбит/сек, SFP\+ |
| 6 | 186000{color:#222222}₽ / $2800{color} | ATX | 1 x Intel Core i9-7960X, 2.8GHz, 16 ядер | 1 x 8Gb DDR4 2666MHz | MSI X299 SLI PLUS или любая другая с LGA2066 сокетом | 1 x Mellanox ConnectX-3 MCX311A-XCCT, single-port, 10Гбит/сек |
| 7 | 490000{color:#222222}₽ / $7300{color} | ATX | 2 x Intel Xeon E5-2687W v4, 3GHz, 12 ядер | 2 x 8Gb DDR4 2400MHz | HP Proliant ML350 G9 SFF CTO | 2 x Intel 82599, dual port, 10Гбит/сек, SFP\+ |
| 10 | 710000{color:#222222}₽ / $10600{color} | 1U | 2 x Intel Xeon Gold 6154, 3GHz, 18 ядер | 2 x 8Gb DDR4 2666MHz | SuperServer 1029P-WT | 2 x Mellanox ConnectX-3 MCX311A-XCCT, single-port, 10Гбит/сек |
| 16 | 720000{color:#222222}₽ / $10750{color} | 1U | 2 x Intel Xeon Gold 6154, 3GHz, 18 ядер | 2 x 8Gb DDR4 2666MHz | SuperServer 1029P-WT | 2 x Mellanox ConnectX-3 MCX312B-XCCT, dual-port, 10Гбит/сек |

h2. Типы серверов

|| Тип сервера || Описание || Плюсы || Минусы ||
| ATX | {color:#222222}Самостоятельно собранный или заказанный сервер из десктопных компонентов{color}\\ | {color:#222222}Такие сервера имеют высокую производительность за низкую цену.{color}\\
{color:#222222}С их помощью очень легко масштабироваться в ширину.{color}\\
{color:#222222}Компоненты легко приобрести.{color}\\ | Менее надёжны. \\
Не получится поставить в стандартную серверную стойку. |
| 1U, 2U | {color:#222222}Одноюнитовые и двухюнитовые сервера для установки в стойку.{color}\\ | {color:#222222}Верхний сегмент таких серверов позволяет проводить вертикальное масштабирование, то есть обрабатывать б{color}{color:#222222}{_}о{_}{color}{color:#222222}льший объём трафика в рамках одного сервера.{color}\\
{color:#222222}Высокая надёжность.{color}\\
{color:#222222}Чем меньше серверов - тем проще их администрировать.{color} | Высокая цена. \\
На некоторые модели сложно найти поставщика. |

h2. Процессоры

* гипертрединг - нужно отключать. число ядер (cores) у процессоров ниже указано с учётом отключенного гипертрединга.
* 4\+ ядра - хорошо
* Intel - хорошо, с AMD могут быть проблемы
* Чем больше L3 кэш, тем лучше.
* 3GHz\+ частота - хорошо
* очень много ядер, но с маленькой частотой - не хорошо.
* несколько socket'ов (физических процессоров):
** если используется несколько сетевых карт для зеркала - хорошо
** если одна - имеет мало смысла и в некоторых случаях может быть хуже, чем на одном сокете.
** если у материнской платы один PCI слот или оба привязаны к одному процессору - плохо.

|| Трафик || Однопроцессорное решение \\ || Многопроцессорное решение \\ ||
| 10 Гбит/сек + \\ | Здесь не получится обойтись одним процессором. Можно масштабироваться \\
по числу серверов: на каждую точку съёма зеркала трафика установить \\
отдельный недорогой сервер. Это окажется дешевле при покупке, но, возможно, усложнит эксплуатацию (все сервера нужно администрировать). | * Intel® Xeon® Gold 6154 Processor, 3,00GHz, 4 sockets, 18 cores, 25M L3 cache
* Intel® Xeon® Gold 6144 Processor, 3.50 GHz, 4 sockets, 8 cores, 25M L3 cache
* Intel® Xeon® E5-2687W v4 @ 3.00GHz, 2 sockets, 12 cores, 30M L3 cache
* Intel® Xeon® E5-2689 v4 @3.10GHz, 2 sockets, 10 cores/socket, 25M L3 cache
* Intel® Xeon® E5-2690 @ 2.90GHz, 2 sockets, 8 cores/socket, 20M L3 cache |
| до 5 Гбит/сек \\ | * Intel(R) Xeon(R) CPU W-2145 @ 3.70GHz, 8 cores, 11M L3 cache
* Intel(R) Xeon(R) CPU E5-1680 v4 @ 3.40GHz, 8 cores, 20M L3 cache
* Intel(R) Xeon(R) E5-2667 V4 @ 3.20GHz, 8 cores, 25M L3 cache
* Intel(R) Xeon(R) CPU E5-1660 v2 @ 3.30GHz, 6 cores, 16M L3 cache
* Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz, 4 cores, 8M L3 cache
* Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz, 4 cores, 8M L3 cache
* Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1246 v3 @ 3.50GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1270 v3 @ 3.50GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1270 @ 3.40GHz, 4 cores, 8M L3 cache
* Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz, 4 cores, 6M L3 cache
* Intel(R) Xeon(R) CPU E3-1240 @ 3.30GHz, 4 cores, 8M L3 cache
* Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz, 4 cores, 8M L3 cache
* Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz, 4 cores, 6M L3 cache
* Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz, 4 cores, 6M L3 cache
* Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, 4 cores, 8M L3 cache | * Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz, 2 sockets, 6 cores/socket, 16M L3 cache
* Intel(R) Xeon(R) CPU X5650 @ 2.67GHz, 2 sockets, 6 cores/socket, 12M L3 cache
* Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz, 2 sockets, 6 cores/socket, 16M L3 cache
* Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz, 2 sockets, 4 cores/socket, 10M L3 cache
* Intel(R) Xeon(R) CPU X5570 @ 2.93GHz, 2 sockets, 4 cores/socket, 8M L3 cache
* Intel(R) Xeon(R) CPU E5645 @ 2.40GHz, 2 sockets, 6 cores/socket, 12M L3 cache
* Intel(R) Xeon(R) CPU E5530 @ 2.40GHz, 2 sockets, 4 cores/socket, 8M L3 cache |

h2. Сетевые карты

Большинство сетевых карт имеют неоптимальные настройки по умолчанию, что может приводить к пропускам. Carbon Reductor настраивает часть параметров автоматически при загрузке.

Распределение прерываний (RSS) опасно настраивать автоматически: сетевая карта может "зависнуть", а для многопроцессорных систем сложно определить его оптимальную конфигурацию, поэтому мы настраиваем эту опцию только вручную.

При установке нового оборудования обращайтесь в техническую поддержку - мы поможем исключить потери пакетов и подтвердим, что оборудование справляется с текущей нагрузкой.

h3. Рекомендованные

|| Вендор || Модель || Тип || Число \\
очередей \\
(макс.) || Размер \\
буфера \\
(макс.) || Макс. наблюдавшаяся \\
нагрузка {color:#000000}{*}на 1 порт *{color}с \\
отсутствием потерь и \\
др. проблем || Проблемы ||
| Mellanox | MT27520 Family \\
\[ConnectX-3 Pro\] | 10 Гбит/сек | rx=128 | rx=8192 | 6.5 Гбит/сек | Число очередей может быть равным  \\
только степени двойки, неоптимально \\
на 6-ядерных процессорах |
| Broadcom \\
Emulex | OneConnect 10Gb NIC (be3) \\
Device e729 | 10 Гбит/сек | combined=4 | rx=1024 \\
tx=2048 | 1 Гбит/сек | Малое максимальное число \\
очередей, малый размер rx-буфера. \\
Подойдёт для 800-900мбит/сек. \\
Нужно увеличивать параметр модуля \\
rx_frag_size *\** |
| Intel | 82599ES, 82599EB (2 порта) \\
82599EN (1 порт) \\
(ixgbe driver) | 10 Гбит/сек | combined=63 | rx=4096 \\
tx=4096 | 3.5 гбит/сек | Нужно отключать опции LRO и GRO. \\
В остальном хороши, популярны, легко купить \\
замену при  необходимости |
| Intel | X710 (i40e driver) | 10 Гбит/сек | combined=64 | rx=4096 | 4.5 Гбит/сек | Скорее всего способна обрабатывать и больший \\
объём трафика. |
| Intel | I210, I211, I350 \\
(igb driver) \\
82576, 82575EB \\ | 1 Гбит/сек | combined=8 \\
(иногда rx и \\
tx очереди \\
раздельны) | rx=4096 \\
tx=4096 | 800 мбит/сек | В некоторых ситуациях требует \\
пересборки драйвера без поддержки \\
LRO, в противных случаях зависает. |

h3. Проблемные, не рекомендуется использовать в продакшне

Наша компания давно работает с операторами связи. Несмотря на то что мы пишем софт, нам часто приходится помогать своим клиентам решать проблемы с оборудованием.

И пришли к выводу: *категорически запрещено использовать* *D-Link* */* *Realtek{*}*  и другие дешёвые сетевые карты, для чего-то кроме рабочих станций*.

Возможно как железо они не так уж и плохи, но дело в их драйвере:
# Одна очередь на rxtx, вне зависимости от числа доступных ядер процессора.
# Отсутствие возможности задать параметры размеров ring-буферов сетевой карты (маленький буфер приводит к потерям)
# Отсутствие возможности задания coalesce-параметров, нам важен rx-usecs, за счёт его уменьшения можно снизить нагрузку с сетевой карты, увеличив нагрузку на процессор.
# Отсутствие поддержки NAPI драйвером.
|| Вендор || Модель || Тип || Число \\
очередей \\
(макс.) || Размер \\
буфера \\
(макс.) || Макс. наблюдавшаяся \\
нагрузка {color:#000000}{*}на 1 порт *{color}с \\
отсутствием потерь и \\
др. проблем || Проблемы ||
| Intel | 80003ES2LAN, 82541GI \\
82541PI, 82574L, 82540EM \\
82545EM, 82579LM, 82578DM \\
82571EB, 82573L, 82573E \\
82578DC, 82546EB, 82546GB \\
I219-V, I217 | 1 Гбит/сек | other=1 | rx=4096 | ? | Хоть мы и рекомендуем Intel, но конкретно эти модели брать \\
не советуем. Только одна очередь, в итоге всем будет заниматься только одно ядро процессора. Автоматическая настройка RPS \\
сглаживает это, но как правило проблемы сохраняются. \\
\\
Для рабочей станции эти сетевые карты подходят, \\
но для сервера фильтрации - не очень. |
| VMware | VMXNET3 | 1 Гбит/сек | combined=? | rx=4096 | 0 мбит/сек | Виртуальные машины не способны предоставлять \\
гарантированную скорость реакции. Тем не менее \\
это один из лучших драйверов для виртуальных \\
сетевых карт. |
| VMware | VMXNET | 1 Гбит/сек | other=1 | ? | | Лучше выберите VMXNET3. |
| Red Hat, Inc | Virtio | ? | ? | ? | ? | ? |
| Broadcom \\
Emulex | NetXtreme BCM5720 | 1 Гбит/сек | rx=4 \(?) | rx=2047 | ? | |
| Broadcom | NetXtreme: BCM5701, BCM5704 \\
BCM5714, BCM5715, BCM5719 \(?) | 1 Гбит/сек | other=1 | rx=511 | ? | 1 очередь, малый буфер \\
Не распределяют нагрузку между ядрами, если поступает \\
 тегированный (VLAN, QinQ) или VPN трафик. \\ |
| Broadcom | NetXtreme BCM5708S | 1 Гбит/сек | other=1 | rx=2040 | ? | 1 очередь |
| Broadcom | NetXtreme II: BCM5708, BCM5709 \\
BCM5716, BCM5721, BCM5722 | 1 Гбит/сек | combined=8 \\
? | rx=2040 | ? | Возможно нормальная, а проблема была \\
в распределении прерываний при наличии \\
VPN / VLAN / QinQ в трафике, вся нагрузка \\
падала на первую очередь. |
| NVIDIA | MCP55 | 1 Гбит/сек | | rx=16384 | ? | Несмотря на огромный буфер плохо \\
справляется с нагрузкой, 1 очередь |
| Via Technologies \\
D-Link, Realtek, \\
Qualcomm Atheros \\
3Com, Marvell, \\
QLogic, NC326i, \\
TP-Link | | | | | | |
| Chelsio (cxgb3) | n320e \\ | 10 Гбит/сек | 4 | rx=1024 \\
(потенциально \\
rx=16384) | 900мбит/сек | Не получается увеличить размер буфера до максимально возможного, любые действия направленные \\
на изменение размера буферов с помощью ethtool [всегда возвращают ошибку Device is busy.|https://access.redhat.com/solutions/695443]\\
При превышении нагрузки в 1.2Гбит/сек при задействовании 4 ядер 3.5GHz возникают time squeeze.  \\
Нагрузка на CPU при этом довольно высокая, ≈180000 пакетов/сек приводят к ≈55000 прерываний/сек.  \\
В top нагрузка от обработки прерываний (%si) отображается пиками, 3-10% поднимаются до 30-45%.  \\
В теории решение проблемы с увеличением буфера до максимума должно помочь.  \\
Игнорирует параметры ethtool \-C eth0 rx-usecs. \\ | |
*\* увеличение rx_frag_size для Emulex*

{color:#333333}Из коробки иногда не хватает значения rx_frag_size, из-за чего растёт счётчик dropped пакетов, но решается очень просто:{color}echo options be2net rx_frag_size=8192 > /etc/modprobe.d/be2net.conf
reboot


h2. Оперативная память

*Рекомендуем использовать от 8 до 16 Гб DDR4 или DDR3 памяти.*

При высокой нагрузке рекомендуется использование DDR4 с высокой частотой. При использовании многопроцессорных систем обычно нужно устанавливать для каждого процессора собственную планку оперативной памяти в связанный с ним канал.

Не рекомендуем использовать DDR1 или DDR2 из-за малой частоты.

h2. Жёсткий диск

*Рекомендуем для использовать накопители ёмкостью 128Гб и более.*

Для Carbon Reductor необходимо *50Гб* для выполнения процесса установки, в противном случае установка не выполянется.

h2. Материнские платы

* *Supermicro X11DDW-L* -- в плате расширения один слот привязан к CPU1, другой к CPU2, это может быть неочевидно. В случае если все сетевые карты привязаны к одному процессору - воспользуйтесь вторым PCI-E слотом.