Виртуализация

Что такое vCPU?

Также известно как: virtual CPU
Определение

A vCPU is a virtual processor presented to a guest, backed by scheduling time on a physical core or thread. The decisive question is whether the backing thread is shared with other tenants or reserved. A dedicated vCPU has no other tenant scheduled against it; a shared one competes, producing steal time.

Почему vCPU важен

Решающий вопрос — разделяется ли базовый поток с другими арендаторами или зарезервирован. Выделенный vCPU не имеет других арендаторов, планируемых против него; общий — конкурирует, что приводит к появлению времени кражи.

vCPU на практике

Когда вы запускаете сервер, vCPU — это то, что фактически потребляет ваша рабочая нагрузка. Сначала смотрите на время steal: если оно стабильно выше нескольких процентов, ваши vCPU общие, и другие арендаторы съедают ваши циклы. Вы можете увеличить количество vCPU для устранения задержек, но проверьте, является ли проблема конкуренцией, а не ядрами. Ошибка означает оплату времени планирования, которое не ваше, и ваше приложение страдает от остановок, которые вы не можете объяснить.

Что люди часто понимают неправильно в отношении vCPU

Распространенная ошибка — относиться к vCPU как к физическим ядрам с гарантированной скоростью. В среде KVM каждый vCPU поддерживается потоком хоста, и на общем хосте этот поток конкурирует. Люди предполагают, что больше vCPU всегда помогает, но если поддерживающий поток перегружен, вы получаете время steal. Исправление: проверяйте время steal перед масштабированием количества vCPU.

vCPU — частые вопросы

Сколько vCPU мне нужно?

Это зависит от вашей рабочей нагрузки. Для занятого веб-сервера начните с двух и следите за временем steal CPU. Если steal остается низким, а вы все еще упираетесь в предел, добавляйте vCPU. На наших планах KVM вы можете увеличить CPU и RAM с короткой перезагрузкой, так что вы можете настроить без пересборки.

Могу ли я изменить количество vCPU позже?

Да, на вашем существующем сервере можно увеличить CPU с короткой перезагрузкой, а диск растет без остановки. Переход на тариф ниже требует пересоздания, а не live-миграции, поэтому лучше начинать с малого и масштабироваться вверх.

Где встречается vCPU

Больше из раздела «виртуализация»

KVM
KVM — это полная аппаратная виртуализация, встроенная в ядро Linux, предоставляющая каждому гостю собственное ядро и аппаратно-обеспеченную изоляцию от других арендаторов.
OpenVZ
OpenVZ — это контейнерная виртуализация, в которой каждый экземпляр разделяет ядро хоста, поэтому гости не могут загружать модули ядра или запускать другую операционную систему.
LXC
LXC — это нативная контейнеризация Linux, которая изолирует процессы с помощью namespace и cgroups, разделяя ядро хоста.
Гипервизор
Гипервизор — это программный слой, который создаёт и запускает виртуальные машины, распределяя между ними физические CPU, память и ввод-вывод.
Nested virtualisation
Вложенная виртуализация позволяет виртуальной машине самой запускать виртуальные машины, предоставляя гостю расширения виртуализации процессора.
cloud-init
cloud-init — стандартный механизм настройки виртуальной машины при первой загрузке, использующий метаданные, предоставляемые платформой.