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

Skip to end of metadata
Go to start of metadata

Процессоры

Гипертрединг - необходимо отключить. Число ядер (cores) у процессоров в таблице ниже указано с учётом отключенного гипертрединга.

Рекомендуется:

  • 4 или более ядер.
  • Призводитель — Intel.
  • Чем больше L3 кэш, тем лучше.
  • 3GHz+ частота

Не рекомендуется:

  • Очень много ядер, но с маленькой частотой.
  • Призводитель — AMD

Для серверов с несколькими физическими процессорами (sockets) нужно использовать материнские платы с несколькими PCI слотами, привязанными к разным процессорам. На каждый физический процессор должна использоваться отдельная сетевая карта (не порт), установленная в PCI-слот соответствующего ей процессора.

Число процессоров

В идеале число процессоров = числу принимающих зеркало трафика сетевых карт. Иногда проще и дешевле масштабироваться, устанавливая дополнительные сервера и отправляя доп. зеркала трафика в них, чем покупать один мощный сервер с несколькими процессами и сетевыми картами.

  • если сетевая карта 1, а процессора 2 - большой выгоды от использования 2 процессоров не будет.
  • если сетевых карты 2, а процессор 1 - ничего страшного, главное чтобы его ресурсов хватало на обработку трафика.
  • если сетевых карты 3, а процессора 2 — лучше установить ещё 1 сервер.
  • если сетевая карта 1, но двухпортовая, а процессора 2 - либо 2й процессор будет простаивать, либо один из портов будет обрабатываться с 10-30% эффективности.
  • если сетевых карты 2, процессора 2, но обе сетевые карты установлены в PCI слоты, принадлежащие к одной NUMA-ноде, либо 2й процессор будет простаивать, либо работать с 10-30% эффективности.

Среднестатистические системы с одним процессором в теории способны обрабатывать от 2 до 7 Гб трафика.

Частота

Частота - один из самых важных показателей процессора. От него зависит сколько пакетов в секунду на 1 ядро способен обработать сервер.

  • 2.0 - 2.4 GHz процессоры неэффективны в обработке трафика вне зависимости от числа ядер.
  • 3.0 GHz приемлемо.
  • 3.2 GHz+ оптимально.
  • 3.8 GHz отлично.

Число ядер

  • 1 ядро / процессор — запрещено.
  • 2 ядра / процессор — не рекомендуется.
  • 4 ядра / процессор — рекомендуемый минимум.
  • 6 ядер / процессор — не всегда хорошо, из-за особенностей некоторых сетевых карт лучше выбирать процессоры с числом ядер, кратным степени двойки (4, 8, 16).
  • 8 ядер / процессор — хорошо.
  • Гипертрединг нужно выключить, а число тредов не учитывать.

L3 кэш

  • Процессоры без L3 кэша в 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) 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) 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) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, 4 cores, 8M 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) Core(TM) i5-3570 CPU @ 3.40GHz, 4 cores, 6M 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 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 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

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

Размер rx-буфера

  • Менее 1024 - не рекомендуется.
  • 2048-4096 - пригодно в общем случае.
  • 8192 - отлично.

Драйвер

От драйвера и модели карты зависит, что он умеет, например

  • управление числом очередей
  • управление размером буфера
  • управление распределением пакетов между процессорами

Зафиксированные нами "рекорды" эффективной работы (без потерь и задержек обработки пакетов) сетевых карт, в зависимости от драйвера:

  • mellanox
    • mlx5_core - 7500 mbit/s
    • mlx4_en - 6500 mbit/s
  • intel:
    • i40e - 6000 mbit/s
    • ixgbe - 4000 mbit/s
    • igb - 800 mbit/s
    • e1000e - 80 mbit/s
    • e1000 - 50 mbit/s
  • broadcom:
    • bnx2x - 100 mbit/s
  • r8169, ATL1E, 8139too - эффективная работа не фиксировалось.

Число очередей

  • Сетевые карты с одной очередью не рекомендуются для использования.
  • Некоторые сетевые карты (Mellanox, Intel X710) способны работать только с числом очередей кратным степени двойки, использование 6-, 10-, 12-, 14-, 18- ядерных процессоров с ними может быть неэффективно.

Число портов

  • Порты одной сетевой обрабатываются одним процессором (принадлежат к 1 NUMA-ноде), поэтому:
    • Двухпортовые сетевые карты имеет смысл использовать только при сборе бонда (LAG)
    • При наличии двух процессоров в системе лучше приобрести две однопортовые карты и вставить их в слоты так, чтобы они принадлежали к разным NUMA-нодам.

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

  • Для сетевых карт имеющих несколько очередей, распределение прерываний (RSS) настраивается автоматически на том процессоре, к которому эта сетевая карта привязана.
  • Количество очередей не меняется, в случае с несколькими процессорами его нужно настроить вручную (настройки сети в /etc/sysconfig/network-scripts/ifcfg-ethX, параметр ETHTOOL_OPTS).
  • Для сетевых карт не поддерживающих распределение прерываний, настраивается RPS, что также распределяет нагрузку между ядрами.
  • Размер буфера устанавливается автоматически, если это возможно.

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

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

Вендор Модель Тип Число
очередей
(макс.)
Размер
буфера
(макс.)
Макс. наблюдавшаяся
нагрузка на 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 сервера для установки в стойку.
Верхний сегмент таких серверов позволяет проводить вертикальное масштабирование, обрабатывая больший объём трафика в рамках одного сервера.
Высокая надёжность.
Чем меньше серверов - тем проще их администрировать.
Высокая цена.
На некоторые модели сложно найти поставщика.
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.