Процессоры
- Гипертрединг - необходимо отключить. Число ядер (cores) у процессоров ниже указано с учётом отключенного гипертрединга.
- Рекомендуется:
1. 4+ ядра.
2. Призводитель-Intel.
3. Чем больше L3 кэш, тем лучше.
4. 3GHz+ частота - Не рекомендуется
1. Очень много ядер, но с маленькой частотой.
2. Призводитель-AMD
- несколько socket'ов (физических процессоров):
Рекомендуем:
1. Использовать несколько сетевых карт для зеркала
2. Использовать материнские платы с несколькими PCI слотами, привязанными к разным процессорам.
Число процессоров
- В идеале число процессоров = числу принимающих зеркало трафика сетевых карт. Отсюда два вывода:
- если сетевая карта одна, а процессора два - большой выгоды от использования 2 процессоров не будет.
- если сетевых карты две, а процессор один - они будут конфликтовать за его ресурсы, что неэффективно.
- если сетевых карты три, а процессора два - может проще установить ещё один сервер?
- если сетевая карта 1, но двухпортовая, а процессора два - один из портов будет обрабатываться значительно менее эффективно.
- если сетевых карты две, процессора два, но обе сетевые карты принадлежат к одной NUMA-ноде, они будут использоваться неэффективно.
- Среднестатистические системы с одним процессором в теории способны обрабатывать около 2-4гб трафика.
- Однако можно масштабироваться не в рамках одного сервера, а устанавливая дополнительные сервера.
Частота
- Частота - один из самых важных показателей процессора. В каком-то роде по нему можно судить сколько пакетов в секунду на 1 ядро способен обработать сервер.
- 2GHz процессоры не очень эффективны в обработке трафика.
- 2.8GHz приемлемо.
- 3.2GHz+ оптимально
- 4GHz отлично
Число ядер
- 8 ядер на процессор - рекомендуется.
- 1 ядро на процессор - не рекомендуется.
- Гипертрединг в общем случае лучше выключить, а число тредов не учитывать:
- Гипертрединг для 1 ядра почти бесполезен.
- Гипертрединг для 8+ ядер может быть незначительно вреден.
L3 кэш
- Процессоры с L2-only кэшем могут быть не такими уж плохими, но в 99% это сигнализирует о том, что остальное железо (материнская плата, оперативная память) старое и слабое.
- Чем больше L3-кэша тем лучше.
Трафик | Однопроцессорное решение |
Многопроцессорное решение |
---|---|---|
10 Гбит/сек + |
Здесь не получится обойтись одним процессором. Можно масштабировать по числу серверов: на каждую точку съёма зеркала трафика установить отдельный недорогой сервер. Это окажется дешевле при покупке, но, возможно, усложнит эксплуатацию (все сервера нужно администрировать). |
|
до 5 Гбит/сек |
|
|
Сетевые карты
Размер rx-буфера
- Менее 1024 - не рекомендуется
- 2048-4096 - пригодно в общем случае
- 8192 - отлично
Драйвер
От драйвера и модели карты зависит, что он умеет, например
- управление числом очередей
- управление размером буфера
- управление распределением пакетов между процессорами
Выдержка из кода утилиты server-info, в комментарии - наблюдаемая эффективная работа сетевых карт, использующих этот драйвер:
'driver': { 'mlx5_core': 10, # 7500 mbit/s 'mlx4_en': 9, # 6500 mbit/s 'i40e': 8, # 6000 mbit/s 'ixgbe': 7, # 4000 mbit/s 'igb': 6, # 400 mbit/s 'bnx2x': 4, # 100 mbit/s 'e1000e': 3, # 80 mbit/s 'e1000': 3, # 50 mbit/s 'r8169': 1, 'ATL1E': 1, '8139too': 1, # real trash, you should never use it }
Число очередей
- Сетевые карты с одной очередью не рекомендуются
- Компенсировать их неэффективность можно с помощью технологии RPS
- Сетевые карты с 1 rx-очередью и 1 tx-очередью тоже не подходят, т.к. TX-трафика при приёме зеркала нет
- Некоторые сетевые карты (Mellanox, Intel X710) способны работать только с числом очередей кратным степени двойки, использование 6-, 10-, 12-, 14-, 18- ядерных процессоров с ними может быть неэффективно.
Число портов
- Порты одной сетевой обрабатываются одним процессором (принадлежат к 1 NUMA-ноде), поэтому:
- Двухпортовые сетевые карты имеет смысл использовать только при сборе бонда (LAG)
- При наличии двух процессоров в системе лучше приобрести две однопортовые карты и вставить их в слоты так, чтобы они принадлежали к разным NUMA-нодам.
Большинство сетевых карт имеют неоптимальные настройки по умолчанию, что может приводить к пропускам. Carbon Reductor DPI настраивает часть параметров автоматически при загрузке.
Распределение прерываний (RSS) опасно настраивать автоматически: сетевая карта может "зависнуть", а для многопроцессорных систем сложно определить его оптимальную конфигурацию, поэтому мы настраиваем эту опцию только вручную.
При установке нового оборудования обращайтесь в техническую поддержку - мы поможем исключить потери пакетов и подтвердим, что оборудование справляется с текущей нагрузкой.
Рекомендованные
Вендор | Модель | Тип | Число очередей (макс.) |
Размер буфера (макс.) |
Макс. наблюдавшаяся нагрузка на 1 порт с отсутствием потерь и др. проблем |
Проблемы |
---|---|---|---|---|---|---|
Mellanox | MT27520 Family [ConnectX-3 Pro] |
10 Гбит/сек | rx=128 | rx=8192 | 6.5 Гбит/сек | Число очередей может быть равным только степени двойки, неэффективно на 6-, 10-, 12-, 14-, 18-ядерных процессорах |
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, в противных случаях зависает. |
* увеличение rx_frag_size для Emulex
Из коробки иногда не хватает значения rx_frag_size, из-за чего растёт счётчик dropped пакетов, но решается очень просто:
echo options be2net rx_frag_size=8192 > /etc/modprobe.d/be2net.conf reboot
Материнская плата и корпус
Число слотов под сетевые карты
- Слотов должно хватать на установку PCI карт.
- Места в корпусе сервера должно хватать под установку всех необходимых сетевых карт
Тип оперативной памяти
- Используйте DDR4-память
- В крайнем случае DDR3, но это станет узким горлышком при апгрейде сервера
- DDR1 и DDR2 память не рекомендуется использовать при любом объёме трафика, она слишком медленная
Тип сервера | Описание | Плюсы | Минусы |
---|---|---|---|
ATX | Самостоятельно собранный или заказанный сервер из десктопных компонентов |
Такие сервера имеют высокую производительность за низкую цену. С их помощью очень легко масштабироваться в ширину. Компоненты легко приобрести. |
Менее надёжны. Не получится поставить в стандартную серверную стойку. |
1U, 2U | сервера для установки в стойку. |
Верхний сегмент таких серверов позволяет проводить вертикальное масштабирование, то есть обрабатывать больший объём трафика в рамках одного сервера. Высокая надёжность. Чем меньше серверов - тем проще их администрировать. |
Высокая цена. На некоторые модели сложно найти поставщика. |
Как оценивать сервер
Сервер только планируется собирать
Смотрите инструкцию ниже и консультируйтесь с технической поддержкой CarbonSoft.