Risposta rapida
Cos'è il CPU steal time e come lo controllo sul mio VPS?
Il CPU steal time è la quota di tempo in cui la tua vCPU era pronta a eseguire mentre l'hypervisor faceva girare un'altra macchina; con il 10% di steal, un job impegnativo perde circa un decimo del suo tempo. Il 2 novembre 2026, nessuno dei 22 host crypto senza KYC che promettono CPU dedicate pubblicava una misurazione dello steal, e nemmeno Cobaltfell. Linux mostra lo steal come st in top e %steal in mpstat.
Cos'è esattamente lo steal time?
Lo steal time conta i momenti in cui la tua CPU virtuale voleva lavorare e il processore fisico era occupato con un altro guest. Gli strumenti Linux lo descrivono in tre modi leggermente diversi:
top: "tempo rubato a questa vm dall'hypervisor".mpstat: la percentuale di "attesa involontaria" mentre l'hypervisor "stava servendo un altro processore virtuale"./proc/stat: "il tempo trascorso in altri sistemi operativi quando si esegue in un ambiente virtualizzato", conteggiato da Linux 2.6.11.
La documentazione KVM del kernel aggiunge il dettaglio che rende utile il contatore: lo steal è il tempo in cui la vCPU non è stata eseguita, e il tempo in cui la vCPU è inattiva non viene riportato come steal. Un VPS inattivo non può mostrare steal, per quanto l'host sia sovraccarico. Il numero compare solo quando chiedi CPU e non la ottieni.
Il dato arriva dall'hypervisor, che lo condivide con il kernel guest. Un guest può contare solo ciò che l'hypervisor riporta, il che è un motivo in più per confermare un valore basso con un benchmark ripetuto.
Come controllo lo steal time?
Quattro comandi lo mostrano; eseguili mentre gira il tuo carico reale, non su una macchina inattiva. top e vmstat sono inclusi nel pacchetto procps su ogni distribuzione comune. mpstat è incluso in sysstat (apt install sysstat su Debian e Ubuntu, dnf install sysstat su AlmaLinux e Rocky).
topvmstat 1 60mpstat -P ALL 1 60a=($(head -n1 /proc/stat)); sleep 10; b=($(head -n1 /proc/stat))
# fields 1-8: user nice system idle iowait irq softirq steal
all=0; for i in 1 2 3 4 5 6 7 8; do all=$((all + b[i] - a[i])); done
awk -v st=$((b[8] - a[8])) -v all=$all 'BEGIN { printf "steal: %.2f%%\n", 100 * st / all }'La prima riga di /proc/stat somma tutte le vCPU, in unità di USER_HZ (un centesimo di secondo sulla maggior parte dei sistemi). Lo script la legge due volte, a dieci secondi di distanza, e divide lo steal accumulato per tutto il tempo trascorso. Per confermare che tu sia davvero su una macchina virtuale, systemd-detect-virt stampa il tipo di hypervisor, kvm su KVM.
Come leggo i numeri?
Nessuno standard definisce un valore di steal "buono", ma l'aritmetica è semplice: un job che richiede la CPU di continuo ottiene al massimo il 100% meno lo steal. Con il 5% di steal ottiene circa il 95% del tempo che chiede; con il 25%, circa tre quarti. Leggi l'andamento, non un singolo campione.
| Cosa vedi | Cosa significa | Cosa fare |
|---|---|---|
| 0 su ogni vCPU mentre il tuo job gira a pieno carico | Non ti viene tolto nulla, oppure l'hypervisor non riporta steal | Conferma con lo stesso benchmark in due orari diversi |
| Qualche campione diverso da zero, poi di nuovo 0 | Contesa breve sull'host | Di solito niente; tieni un log se il tuo job è sensibile alla latenza |
| Steal costante sotto carico, ogni secondo | La tua vCPU è in coda dietro altri guest | Annota gli orari, misura per un giorno, invia il log all'host |
Steal su una sola vCPU in mpstat -P ALL | Uno dei tuoi thread finisce su una parte più occupata dell'host | Indica il numero della vCPU nel tuo ticket |
| Steal che aumenta alle stesse ore ogni giorno | Vicini con una pianificazione: backup, job batch, traffico di punta | Sposta i job pesanti in altri orari, o passa a vCPU dedicate |
| Qualsiasi steal duraturo su un piano venduto come dedicato | La promessa non viene mantenuta in quel momento | Chiedi all'host di spiegare o spostare il VPS |
La mia CPU è condivisa con vicini rumorosi?
Se lo steal aumenta quando carichi la CPU e la crescita segue il clock invece del tuo lavoro, altri tenant stanno condividendo il tempo del tuo processore. Tre controlli lo circoscrivono:
- Caricalo tu stesso. Esegui il tuo job reale, o un test CPU-bound, e tieni
mpstat -P ALL 1aperto in un secondo terminale. Uno steal che segue il tuo carico dice che l'host ha meno CPU libera di quanto il tuo piano suggerisca. - Confronta le ore. Esegui lo stesso benchmark di mattina e di sera. Su una vCPU dedicata, i due risultati dovrebbero essere simili; come fare benchmark di un VPS con YABS o Geekbench 6 fornisce i comandi.
- Leggi il piano. Un piano venduto con vCPU condivisa può mostrare steal; è per questo che costa meno. La pagina su la differenza tra una vCPU condivisa e una vCPU dedicata spiega cosa acquista ciascuna.
Un VPS lento con steal a zero punta altrove: attese del disco (la colonna wa, tempo in attesa di I/O), pressione sulla memoria o l'applicazione stessa.
Cosa causa lo steal time, e cosa lo risolve?
Lo steal cresce quando l'host ha venduto più vCPU occupate di quanti thread hardware ha per eseguirle. Quando ogni guest chiede CPU contemporaneamente, alcuni devono aspettare, e l'attesa viene conteggiata come steal in ciascuno di essi.
Cosa puoi fare, dal minimo al massimo sforzo:
- Sposta il lavoro pesante nelle ore in cui l'host è più tranquillo, se il tuo carico lo consente.
- Chiedi all'host di spostare il tuo VPS su un nodo meno carico; un log da
mpstatrende la richiesta concreta. - Cambia tipo di piano. Una vCPU dedicata rimuove gli altri guest dai tuoi thread. Gli host che le vendono, con le parole che ciascuno usa e il prezzo per core, sono elencati in quanto costa una VPS con CPU dedicata per core a novembre 2026.
Secondo l'indagine di Cobaltfell del 2 novembre 2026, 22 su 51 host VPS che accettano criptovalute senza un documento d'identità promettevano per iscritto una CPU dedicata, e nessuno di loro mostrava una misurazione dello steal time sulle pagine che abbiamo letto.
Aggiungere altre vCPU condivise raramente aiuta: più thread dallo stesso host affollato aspettano nella stessa coda.
Su un database, lo steal si vede prima nelle query più lente, come spiegato in come lo steal di CPU influisce sulla latenza p99 di PostgreSQL su un VPS.
Che steal dovrebbe mostrare una VPS Cobaltfell?
Su un vCPU dedicato, lo steal time dovrebbe essere a zero o vicino a zero. Pubblicheremo il valore che misuriamo sulle nostre macchine, con la sua data, e mai una stima. Ogni vCPU è riservata a una sola VPS: Un vCPU è un thread hardware del processore host. I tuoi sono assegnati uno a uno al tuo VPS e non vengono mai prestati a un altro cliente, e i due thread di un core fisico restano insieme, quindi ogni 2 vCPU formano un core intero che nessun vicino condivide.
I nostri risultati YABS e Geekbench 6, insieme allo steal time che misuriamo, saranno pubblicati con la loro data quando sarà consegnata la nostra prima macchina di test. Fino ad allora non citiamo nessun dato di prestazioni nostro. Finché quella pagina non riporta un dato con la data, esegui i comandi qui sopra sulla tua VPS; se lo steal resta alto mentre il tuo job è in esecuzione, il log basta per un ticket. I migliori provider di VPS con CPU dedicata nel 2026 sono confrontati sugli stessi criteri scritti, compreso il nostro. Una persona risponde alle email di supporto entro 12 ore, sette giorni su sette, anche per assistenza con chiavi SSH, reinstallazioni e regole del firewall.
Quali altre domande si fanno sullo steal time della CPU?
Lo steal time è la stessa cosa dell'iowait?
No. Lo steal (st) è il tempo in cui la tua vCPU voleva essere eseguita ma l'hypervisor ha eseguito un altro guest. L'iowait (wa) è il tempo in cui la CPU è rimasta inattiva in attesa che il disco o altre operazioni di I/O finissero. Un iowait alto indica lo storage, uno steal alto la contesa di CPU.
Perché top non mostra un valore st?
Il manuale di top nota che il campo st potrebbe non essere mostrato a seconda della versione del kernel. Sulle distribuzioni attuali compare nella riga %Cpu(s); su un kernel vecchio o fuori da una macchina virtuale può mancare o restare a zero.
Un server dedicato può mostrare steal time?
Un sistema che gira direttamente sull'hardware, senza un hypervisor sotto, non ha nessuno che possa rubargli tempo, quindi il contatore resta a zero. Lo steal esiste solo per un guest in esecuzione sotto un hypervisor.
Quale valore di steal è troppo alto?
Nessuno standard fissa un limite. Usa l'aritmetica: al 10% di steal un job CPU-bound ottiene circa il 90% del tempo di cui ha bisogno. Su un piano venduto con vCPU dedicata, lo steal dovrebbe restare a zero o vicino a zero mentre lavori.
Lo steal time influisce sulla latenza oltre che sulla capacità?
Sì. Ogni attesa ritarda la richiesta in esecuzione su quella vCPU, quindi lo steal si vede prima nelle richieste più lente, il p99 di un database o di un'API, prima di spostare la media.
Fonti (6)
- MSR specifici di KVM: MSR_KVM_STEAL_TIME — The Linux Kernel documentation (checked 2026-11-02)
- proc_stat(5): statistiche di kernel/sistema — man7.org (Linux man-pages 6.19) (checked 2026-11-02)
- pagina del manuale di top(1) — man7.org (procps-ng) (checked 2026-11-02)
- pagina del manuale di vmstat(8) — man7.org (procps-ng) (checked 2026-11-02)
- pagina di manuale mpstat(1) — man7.org (sysstat) (checked 2026-11-02)
- pagina del manuale di systemd-detect-virt(1) — man7.org (systemd) (checked 2026-11-02)