Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим |
просмотр истории страницы
Типы серверов
Тип сервера | Описание | Плюсы | Минусы |
---|---|---|---|
ATX | Самостоятельно собранный или заказанный сервер из десктопных компонентов |
Такие сервера имеют высокую производительность за низкую цену. С их помощью очень легко масштабироваться в ширину. Компоненты легко приобрести. |
Менее надёжны. Не получится поставить в стандартную серверную стойку. |
1U, 2U | Одноюнитовые и двухюнитовые сервера для установки в стойку. |
Верхний сегмент таких серверов позволяет проводить вертикальное масштабирование, то есть обрабатывать больший объём трафика в рамках одного сервера. Высокая надёжность. Чем меньше серверов - тем проще их администрировать. |
Высокая цена. На некоторые модели сложно найти поставщика. |
Процессоры
- гипертрединг - нужно отключать. число ядер (cores) у процессоров ниже указано с учётом отключенного гипертрединга.
- 4+ ядра - хорошо
- Intel - хорошо, с AMD могут быть проблемы
- Чем больше L3 кэш, тем лучше.
- 3GHz+ частота - хорошо
- очень много ядер, но с маленькой частотой - не хорошо.
- несколько socket'ов (физических процессоров):
- если используется несколько сетевых карт для зеркала - хорошо
- если одна - имеет мало смысла и в некоторых случаях может быть хуже, чем на одном сокете.
- если у материнской платы один PCI слот или оба привязаны к одному процессору - плохо.
Трафик | Однопроцессорное решение |
Многопроцессорное решение |
---|---|---|
10 Гбит/сек + |
Здесь не получится обойтись одним процессором. Можно масштабироваться по числу серверов: на каждую точку съёма зеркала трафика установить отдельный недорогой сервер. Это окажется дешевле при покупке, но, возможно, усложнит эксплуатацию (все сервера нужно администрировать). |
|
до 5 Гбит/сек |
|
|
Как оценивать сервер
Сервер есть под руками
Установите CentOS 6 или CentOS 7
Выполните:
yum -y install epel-release yum -y install python-pip pip install netutils-linux sudo server-info rate
Для более общей оценки можно:
cd /root/server/ # оценка с точностью до девайса server-info-rate -f # оценка с точностью до подсистемы server-info-rate -ff # оценка сервера целиком server-info-rate -fff
Сервер только планируется собирать
Смотрите инструкцию ниже и консультируйтесь с нашей технической поддержкой.
Процессор
Число процессоров
- В идеале число процессоров = числу принимающих зеркало трафика сетевых карт. Отсюда два вывода:
- если сетевая карта одна, а процессора два - большой выгоды от использования 2 процессоров не будет.
- если сетевых карты две, а процессор один - они будут конфликтовать за его ресурсы, что неэффективно.
- если сетевых карты три, а процессора два - может проще установить ещё один сервер?
- если сетевая карта 1, но двухпортовая, а процессора два - один из портов будет обрабатываться значительно менее эффективно.
- если сетевых карты две, процессора два, но обе сетевые карты принадлежат к одной NUMA-ноде, они будут использоваться неэффективно.
- Среднестатистические системы с одним процессором в теории способны обрабатывать около 2-4гб трафика.
- Однако можно масштабироваться не в рамках одного сервера, а устанавливая дополнительные сервера.
Частота
- Частота - один из самых важных показателей процессора. В каком-то роде по нему можно судить сколько пакетов в секунду на 1 ядро способен прожевать сервер.
- 2GHz процессоры не очень эффективны в обработке трафика.
- 2.8GHz приемлемо.
- 3.2GHz+ оптимально
- 4GHz хорошо, но, обычно, дорого
Число ядер
- 8 ядер на процессор - это хорошо.
- 1 ядро на процессор - это очень плохо.
- Гипертрединг в общем случае лучше выключить, а число тредов не учитывать:
- Гипертрединг для 1 ядра почти бесполезен.
- Гипертрединг для 8+ ядер может быть незначительно вреден.
L3 кэш
- Процессоры с L2-only кэшем могут быть не такими уж плохими, но в 99% это сигнализирует о том, что остальное железо (материнская плата, оперативная память) старое и слабое.
- Чем больше L3-кэша тем лучше.
Сетевые карты
Размер 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-трафика при приёме зеркала нет
- Некоторые сетевые карты умеют работать только с числом очередей кратным степени двойки, использование 6-ядерных процессоров с ними неэффективно.
Число портов
- Порты одной сетевой обрабатываются одним процессором (принадлежат к 1 NUMA-ноде), поэтому:
- Двухпортовые сетевые карты имеет смысл использовать только при сборе бонда (LAG)
- При наличии двух процессоров в системе лучше приобрести две однопортовые карты и вставить их в слоты так, чтобы они принадлежали к разным NUMA-нодам.
Материнская плата и корпус
Число слотов под сетевые карты
- Слотов должно хватать на установку PCI карт.
- Места в корпусе сервера должно хватать под установку всех необходимых сетевых карт
Тип оперативной памяти
- Используйте DDR4-память
- В крайнем случае DDR3, но это станет узким горлышком при апгрейде сервера
- DDR1 и DDR2 память не рекомендуется использовать при любом объёме трафика, она слишком медленная