Virtualizzazione

Cos'è vCPU?

Conosciuto anche come: virtual CPU
Definizione

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.

Perché vCPU è importante

La domanda decisiva è se il thread di supporto è condiviso con altri tenant o riservato. Una vCPU dedicata non ha altri tenant pianificati contro di essa; una condivisa compete, producendo tempo di steal.

vCPU in pratica

Quando gestisci un server, la vCPU è ciò che il tuo carico di lavoro consuma effettivamente. Guardi prima il tempo di steal: se è costantemente sopra qualche punto percentuale, le tue vCPU sono condivise e altri tenant stanno mangiando i tuoi cicli. Potresti aumentare il numero di vCPU per risolvere la latenza, ma osserva se il problema è la contesa, non i core. Sbagliare significa pagare per tempo di scheduling che non è tuo, e la tua applicazione subisce stalli che non puoi spiegare.

Errori comuni su vCPU

Un errore comune è trattare le vCPU come se fossero core fisici con velocità garantita. In un ambiente KVM, ogni vCPU è supportata da un thread host e su un host condiviso, quel thread compete. La gente presume che più vCPU aiutino sempre, ma se il thread di supporto è conteso, ottieni tempo di steal. La correzione: controlla il tempo di steal prima di scalare il numero di vCPU.

vCPU — domande frequenti

Di quante vCPU ho bisogno?

Dipende dal tuo carico di lavoro. Per un server web impegnato, inizia con due e osserva il tempo di steal della CPU. Se il furto rimane basso e sei ancora al limite, aggiungi vCPU. Nei nostri piani KVM, puoi aumentare CPU e RAM con un breve riavvio, quindi puoi regolare senza una ricostruzione.

Posso cambiare il numero di vCPU in seguito?

Sì, sul server esistente puoi aumentare la CPU con un breve riavvio e il disco cresce online. Scendere di livello richiede una ricostruzione piuttosto che una migrazione live, quindi è meglio iniziare in piccolo e scalare.

Altro da virtualizzazione

KVM
KVM è una virtualizzazione completa dell'hardware integrata nel kernel Linux, che dà a ogni guest il proprio kernel e un isolamento dal hardware di altri tenant.
OpenVZ
OpenVZ è una virtualizzazione basata su container in cui ogni istanza condivide il kernel dell'host, quindi i guest non possono caricare moduli del kernel o eseguire un sistema operativo diverso.
LXC
LXC è una containerizzazione nativa di Linux che isola i processi con namespace e cgroups condividendo il kernel dell'host.
Hypervisor
Un hypervisor è il livello software che crea ed esegue macchine virtuali, allocando CPU fisica, memoria e I/O tra di esse.
Virtualizzazione annidata
La virtualizzazione annidata consente a una macchina virtuale di eseguire a sua volta macchine virtuali, esponendo le estensioni di virtualizzazione del processore al guest.
cloud-init
cloud-init è il meccanismo standard per configurare una macchina virtuale al primo avvio, usando metadati forniti dalla piattaforma.