vCPU простыми словами: что это и как считать ядра | Глоссарий FREEHOSTING

vCPU

Virtual CPU
vCPU — vCPU — виртуальное процессорное ядро, которое гипервизор выделяет виртуальной машине или контейнеру. Один vCPU обычно соответствует одному потоку физического CPU и делится между несколькими гостями по правилам планировщика.

Определение простыми словами

vCPU — это «талон» на процессорное время, который гипервизор выдаёт виртуальной машине. Когда тариф VPS написан «4 vCPU», это значит, что гость может одновременно загружать четыре потока работы. На железе при этом стоит, например, один процессор с 32 потоками, и эти 32 потока делятся между всеми соседями по ноде.

Соотношение «один vCPU = один поток» условное. На практике планировщик KVM или ESXi даёт vCPU физическое ядро только тогда, когда оно свободно. Если соседний клиент тоже грузит CPU, гость будет ждать своей очереди — это явление меряется через CPU steal time.

Сравнение (таблица)

Параметр vCPU Физическое ядро SMT/HT поток
Где живёт в конфиге виртуалки на материнской плате внутри ядра CPU
Эксклюзивный доступ при CPU pinning да делит с парным потоком
Overcommit возможен невозможен невозможен
Кто планирует гипервизор BIOS/ОС ОС хоста
Видимость в гостевой ОС как обычное ядро как ядро как ядро

Кейсы использования

  • Сайт на WordPress: 1–2 vCPU обычно хватает, узкое место — диск и память.
  • Telegram-бот или парсер: 1 vCPU достаточно, можно брать самый дешёвый OpenVZ-VPS.
  • Игровой сервер Minecraft на 30 игроков: 4 vCPU с гарантированной частотой и pinning.
  • Сборочные пайплайны (CI/CD): 8–16 vCPU и максимум IO, чтобы тесты проходили быстро.
  • Негативный сценарий: хостер сделал overcommit 1:8, на ноде в часы пик все клиенты разом грузят CPU — пользовательский VPS «тормозит» при идеальном top, потому что 60 % времени уходит в steal. Лечится переходом на тариф с гарантированным CPU или дедик.

Технические детали

Сколько vCPU доступно гостю и насколько они реально работают, можно увидеть стандартными утилитами Linux.

nproc                              # количество vCPU
lscpu                              # модель, частота, флаги
cat /proc/cpuinfo | grep processor | wc -l

# мониторинг steal time
top                                # колонка %st
mpstat -P ALL 1                    # детально по каждому vCPU
vmstat 1                           # столбец st = время украденное гипервизором

# нагрузочный тест
stress-ng --cpu $(nproc) --timeout 60 --metrics-brief

На стороне гипервизора важно соотношение vCPU к физическим потокам. Безопасный overcommit — 2:1 для типовых веб-нагрузок и 1:1 для CPU-bound задач (рендеринг, видеокодирование, ML-инференс). Для самых требовательных гостей применяют CPU pinning: vCPU жёстко привязывается к конкретному физическому потоку.

Частые вопросы

Один vCPU — это одно физическое ядро?

Не всегда. Чаще это один SMT/HyperThreading-поток, который делится с другими гостями. Эксклюзивное ядро гарантируется только при CPU pinning.

Сколько vCPU нужно сайту?

Для типового WordPress или лендинга достаточно 1–2 vCPU. Если сайт делает тяжёлые расчёты или генерирует PDF — стоит брать 4 и выше.

Что такое CPU steal time и почему он важен?

Это процент времени, когда vCPU был готов работать, но гипервизор не дал ему процессорное ядро. Высокий steal — признак переподписки ноды.