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

{toc}

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


* Гипертрединг - необходимо отключить. Число ядер (cores) у процессоров ниже указано с учётом отключенного гипертрединга.
* Рекомендуется:
1. 4+ ядра.
2. Призводитель-Intel.
3. Чем больше L3 кэш, тем лучше.
4. 3GHz+ частота
* Не рекомендуется
1. Очень много ядер, но с маленькой частотой.
2. Призводитель-AMD


* несколько socket'ов (физических процессоров):
Рекомендуем:
1. Использовать несколько сетевых карт для зеркала
2. Использовать материнские платы с несколькими PCI слотами, привязанными к разным процессорам.


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

* В идеале число процессоров = числу принимающих зеркало трафика сетевых карт. Отсюда два вывода:
** если сетевая карта одна, а процессора два - большой выгоды от использования 2 процессоров не будет.
** если сетевых карты две, а процессор один - они будут конфликтовать за его ресурсы, что неэффективно.
** если сетевых карты три, а процессора два - может проще установить ещё один сервер?
** если сетевая карта 1, но двухпортовая, а процессора два - один из портов будет обрабатываться значительно менее эффективно.
** если сетевых карты две, процессора два, но обе сетевые карты принадлежат к одной NUMA-ноде, они будут использоваться неэффективно.
* Среднестатистические системы с одним процессором в теории способны обрабатывать около 2-4гб трафика.
* Однако можно масштабироваться не в рамках одного сервера, а устанавливая дополнительные сервера.

h3. Частота

* Частота - один из самых важных показателей процессора. В каком-то роде по нему можно судить сколько пакетов в секунду на 1 ядро способен обработать сервер.
* 2GHz процессоры не очень эффективны в обработке трафика.
* 2.8GHz приемлемо.
* 3.2GHz\+ оптимально
* 4GHz отлично

h3. Число ядер

* 8 ядер на процессор - рекомендуется.
* 1 ядро на процессор - не рекомендуется.
* Гипертрединг в общем случае лучше выключить, а число тредов не учитывать:
** Гипертрединг для 1 ядра почти бесполезен.
** Гипертрединг для 8\+ ядер может быть незначительно вреден.

h3. 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 |



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


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

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

h3. Драйвер

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

Выдержка из кода утилиты server-info, в комментарии - наблюдаемая эффективная работа сетевых карт, использующих этот драйвер:

{code}
'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
}
{code}

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

* Сетевые карты с одной очередью не рекомендуются
** Компенсировать их неэффективность можно с помощью технологии RPS
* Сетевые карты с 1 rx-очередью и 1 tx-очередью тоже не подходят, т.к. TX-трафика при приёме зеркала нет
* Некоторые сетевые карты (Mellanox, Intel X710) способны работать только с числом очередей кратным степени двойки, использование 6-, 10-, 12-, 14-, 18- ядерных процессоров с ними может быть неэффективно.

h3. Число портов

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



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

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

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

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

|| Вендор || Модель || Тип || Число \\
очередей \\
(макс.) || Размер \\
буфера \\
(макс.) || Макс. наблюдавшаяся \\
нагрузка {color:#000000}{*}на 1 порт *{color}с \\
отсутствием потерь и \\
др. проблем || Проблемы ||
| 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|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65799130]. \\
В остальном хороши, популярны, легко купить \\
замену при  необходимости |
| 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*


{color:#333333}Из коробки иногда не хватает значения rx_frag_size, из-за чего растёт счётчик dropped пакетов, но решается очень просто:{color}

{code}
echo options be2net rx_frag_size=8192 > /etc/modprobe.d/be2net.conf
reboot
{code}

h2. Материнская плата и корпус


h3. Число слотов под сетевые карты

* Слотов должно хватать на установку PCI карт.
* Места в корпусе сервера должно хватать под установку всех необходимых сетевых карт

h3. Тип оперативной памяти

* {color:#222222}Используйте DDR4-память{color}
* {color:#222222}В крайнем случае DDR3, но это станет узким горлышком при апгрейде сервера{color}
* {color:#222222}DDR1 и DDR2 память не рекомендуется использовать при любом объёме трафика, она слишком медленная{color}

|| Тип сервера || Описание || Плюсы || Минусы ||
| 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. Как оценивать сервер



h3. Сервер только планируется собирать

Смотрите инструкцию ниже и консультируйтесь с технической поддержкой CarbonSoft.