Советы по подбору оборудования

Skip to end of metadata
Go to start of metadata

Процессоры

  • Гипертрединг - необходимо отключить. Число ядер (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 Гбит/сек +
Здесь не получится обойтись одним процессором. Можно масштабировать
по числу серверов: на каждую точку съёма зеркала трафика установить
отдельный недорогой сервер. Это окажется дешевле при покупке, но, возможно, усложнит эксплуатацию (все сервера нужно администрировать).
  • 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

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

Размер 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.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.