... {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. Число очередей * Сетевые карты с одной очередью не рекомендуются
|