Многоядерный процессор содержит от 2 до 192 вычислительных ядер на одном или нескольких физических кристаллах. Каждое ядро имеет собственные регистры, L1 и L2 кэш. L3-кэш обычно разделяется между группами ядер или всеми ядрами процессора. Ядра работают независимо: одно выполняет запрос к базе данных, другое обрабатывает HTTP-запрос, третье — сжимает изображение.
Как работает
Операционная система распределяет потоки приложений по ядрам через планировщик. Linux использует CFS (Completely Fair Scheduler), Windows — Priority-based scheduler. Эффективность параллелизма зависит от архитектуры приложения: однопоточные приложения (Minecraft, Redis в однопоточном режиме) не выигрывают от добавления ядер.
Современные серверные процессоры 2024 года: Intel Xeon Scalable 5-го поколения — до 60 ядер, AMD EPYC Genoa/Bergamo — до 128/192 ядер. В виртуализации физические ядра делятся на vCPU: 1 физическое ядро = 2 vCPU с включённой гиперпоточностью (Hyper-Threading).
Для серверного хостинга: веб-сервер Nginx отлично масштабируется с ростом числа ядер (worker_processes auto). Node.js однопоточный, но с кластером использует все ядра. PostgreSQL масштабируется при параллельных запросах (max_parallel_workers).
История
Первые коммерческие многоядерные процессоры: IBM POWER4 (2001) — 2 ядра. AMD Athlon 64 X2 (2005) и Intel Core Duo (2006) — первые двухъядерники для массового рынка. Intel Xeon E5-2690 (2012) — 8 ядер. AMD EPYC 9654 (2022) — 96 ядер. ARM-серверы достигли 192 ядер (Ampere Altra Max, 2021).
На что обращать внимание
Тактовая частота и IPC (Instructions Per Clock) важнее числа ядер для однопоточных приложений. AMD EPYC 9654 работает на 2.4–3.7 ГГц базовой/турбо частоте — хуже для однопоточных задач, чем Intel Xeon с 3.5+ ГГц базовой. Для хостинга с PHP/WordPress важны частота и кэш, для аналитических БД — максимальное число ядер.
Архитектуры серверных многоядерных CPU
Серверные CPU: Intel Xeon Scalable (до 60 ядер), AMD EPYC (до 96 ядер). В облаке vCPU — виртуальный поток, соответствующий одному физическому потоку через Hyper-Threading. 1 физическое ядро с HT = 2 vCPU.
Многопоточность в серверных задачах
Nginx масштабируется: worker_processes = числу CPU-ядер. PostgreSQL использует параллельные запросы через max_parallel_workers. Однопоточные задачи (ряд игровых серверов, Redis) требуют высокой тактовой частоты.
NUMA и топология ядер
В двухсокетных серверах 2×32 ядра образуют 2 NUMA-узла. CPU pinning в виртуализации привязывает vCPU к конкретным физическим ядрам. Команда lscpu показывает полную топологию: NUMA-узлы, ядра, потоки.
Плотность vCPU в хостинге
Типичный оверкоммит CPU: 4:1 (4 vCPU на 1 физический поток). Для shared-хостинга: 10:1. Для premium VPS с гарантированными CPU: 1:1. Влияние на производительность: CPU steal в top. Более 10% steal — хост перегружен. Выбирайте хостера с прозрачной политикой оверкоммита.