Virtualisation

What is vCPU?

Also known as: virtual CPU
Definition

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.

Why vCPU matters

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 in practice

When you're running a server, vCPU is what your workload actually consumes. You look at steal time first: if it's consistently above a few percent, your vCPUs are shared and other tenants are eating your cycles. You might bump vCPU count to fix latency, but watch whether the problem is contention, not cores. Getting it wrong means paying for scheduling time that isn't yours, and your application suffers stalls you can't explain.

What people get wrong about vCPU

A common error is treating vCPUs as if they were physical cores with guaranteed speed. In a KVM environment, each vCPU is backed by a host thread, and on a shared host, that thread competes. People assume more vCPUs always help, but if the backing thread is contended, you get steal time. The correction: check steal time before scaling vCPU count.

vCPU — common questions

How many vCPUs do I need?

It depends on your workload. For a busy web server, start with two and watch CPU steal time. If steal stays low and you're still capped, add vCPUs. On our KVM plans, you can increase CPU and RAM with a short reboot, so you can adjust without a rebuild.

Can I change vCPU count later?

Yes, on your existing server you can increase CPU with a short reboot, and disk grows online. Moving down a tier requires a rebuild rather than a live migration, so it's better to start small and scale up.

More from virtualisation

KVM
KVM is full hardware virtualisation built into the Linux kernel, giving each guest its own kernel and hardware-enforced isolation from other tenants.
OpenVZ
OpenVZ is container-based virtualisation in which every instance shares the host kernel, so guests cannot load kernel modules or run a different operating system.
LXC
LXC is Linux-native containerisation that isolates processes with namespaces and cgroups while sharing the host kernel.
Hypervisor
A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them.
Nested virtualisation
Nested virtualisation lets a virtual machine itself run virtual machines, by exposing the processor virtualisation extensions to the guest.
cloud-init
cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform.