... Смотрите инструкцию ниже и консультируйтесь с нашей технической поддержкой. h2. Процессор 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-кэша тем лучше. 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-трафика при приёме зеркала нет * Некоторые сетевые карты умеют работать только с числом очередей кратным степени двойки, использование 6-ядерных процессоров с ними неэффективно. h3. Число портов * Порты одной сетевой обрабатываются одним процессором (принадлежат к 1 NUMA-ноде), поэтому: ** Двухпортовые сетевые карты имеет смысл использовать только при сборе бонда (LAG) ** При наличии двух процессоров в системе лучше приобрести две однопортовые карты и вставить их в слоты так, чтобы они принадлежали к разным NUMA-нодам. h2. Материнская плата и корпус h3. Число слотов под сетевые карты * Слотов должно хватать на установку PCI карт. * Места в корпусе сервера должно хватать под установку всех необходимых сетевых карт h3. Тип оперативной памяти * {color:#222222}Используйте DDR4-память{color} * {color:#222222}В крайнем случае DDR3, но это станет узким горлышком при апгрейде сервера{color} * {color:#222222}DDR1 и DDR2 память не рекомендуется использовать при любом объёме трафика, она слишком медленная{color}
|