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