Krótka odpowiedź
Czym jest CPU steal time i jak sprawdzić go na swoim VPS?
CPU steal time to udział czasu, w którym Twój vCPU był gotowy do pracy, podczas gdy hypervisor obsługiwał inną maszynę; przy 10% steal zajęte zadanie traci około jednej dziesiątej swojego czasu. Na 2 listopada 2026 żaden z 22 hostów krypto bez KYC oferujących dedykowany CPU nie opublikował pomiaru steal, podobnie jak Cobaltfell. Linux pokazuje steal jako st w top i %steal w mpstat.
Czym dokładnie jest steal time?
Steal time liczy momenty, w których Twój wirtualny CPU chciał pracować, a fizyczny procesor był zajęty innym gościem. Narzędzia Linuksa opisują go na trzy nieco różne sposoby:
top: „time stolen from this vm by the hypervisor”.mpstat: odsetek „involuntary wait”, gdy hypervisor „was servicing another virtual processor”./proc/stat: „the time spent in other operating systems when running in a virtualized environment”, liczone od Linuksa 2.6.11.
Dokumentacja KVM jądra dodaje szczegół, który czyni ten licznik użytecznym: steal to czas, w którym vCPU nie działał, a czas, w którym vCPU jest bezczynny, nie jest raportowany jako steal. Bezczynny VPS nie pokaże steal, niezależnie od tego, jak zatłoczony jest host. Liczba pojawia się dopiero wtedy, gdy prosisz o CPU i go nie dostajesz.
Wartość pochodzi od hypervisora, który udostępnia ją jądru gościa. Gość może policzyć tylko to, co raportuje hypervisor, co jest kolejnym powodem, by niską wartość potwierdzić powtórzonym benchmarkiem.
Jak sprawdzić steal time?
Cztery polecenia go pokazują; uruchamiaj je, gdy działa Twoje rzeczywiste obciążenie, a nie na bezczynnej maszynie. top i vmstat są w pakiecie procps w każdej popularnej dystrybucji. mpstat jest w sysstat (apt install sysstat w Debianie i Ubuntu, dnf install sysstat w AlmaLinux i 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 }'Pierwszy wiersz /proc/stat sumuje wszystkie vCPU, w jednostkach USER_HZ (setna sekundy w większości systemów). Skrypt odczytuje go dwukrotnie, w odstępie dziesięciu sekund, i dzieli steal, który narósł, przez cały czas, który upłynął. Aby potwierdzić, że w ogóle jesteś na maszynie wirtualnej, systemd-detect-virt wypisuje typ hypervisora, kvm na KVM.
Jak odczytywać liczby?
Żaden standard nie określa „dobrej” wartości steal, ale arytmetyka jest prosta: zadanie, które potrzebuje CPU przez cały czas, dostaje co najwyżej 100% minus steal. Przy 5% steal dostaje około 95% czasu, o który prosi; przy 25% około trzech czwartych. Czytaj wzorzec, a nie jedną próbkę.
| Co widzisz | Co to znaczy | Co zrobić |
|---|---|---|
| 0 na każdym vCPU, gdy Twoje zadanie działa z pełnym obciążeniem | Nic Ci nie zabierają albo hypervisor nie raportuje steal | Potwierdź tym samym benchmarkiem o dwóch różnych porach |
| Kilka niezerowych próbek, potem znowu 0 | Krótka kontencja na hoście | Zwykle nic; prowadź log, jeśli Twoje zadanie jest wrażliwe na opóźnienia |
| Stały steal pod obciążeniem, co sekundę | Twój vCPU czeka w kolejce za innymi gośćmi | Zanotuj godziny, mierz przez dobę, wyślij log do hosta |
Steal tylko na jednym vCPU w mpstat -P ALL | Jeden z Twoich wątków trafia na bardziej zajętą część hosta | Wspomnij numer vCPU w zgłoszeniu |
| Steal, który rośnie o tych samych godzinach każdego dnia | Sąsiedzi z harmonogramem: backupy, zadania wsadowe, szczyt ruchu | Przenieś ciężkie zadania na inne godziny albo przejdź na dedykowany vCPU |
| Jakikolwiek trwały steal na planie sprzedawanym jako dedykowany | Obietnica nie jest w tym momencie dotrzymywana | Poproś hostingodawcę o wyjaśnienie lub przeniesienie VPS |
Czy mój CPU jest dzielony z hałaśliwymi sąsiadami?
Jeśli steal rośnie, gdy obciążasz CPU, a wzrost podąża za zegarem, a nie za Twoją własną pracą, inni najemcy dzielą Twój czas procesora. Trzy kontrole zawężają odpowiedź:
- Obciąż go sam. Uruchom swoje rzeczywiste zadanie lub test obciążający CPU i trzymaj
mpstat -P ALL 1otwarte w drugim terminalu. Steal, który podąża za Twoim obciążeniem, oznacza, że hostingodawca ma mniej wolnego CPU, niż sugeruje Twój plan. - Porównaj godziny. Uruchom ten sam benchmark rano i wieczorem. Na dedykowanym vCPU oba wyniki powinny być zbliżone; jak zrobić benchmark VPS za pomocą YABS lub Geekbench 6 podaje polecenia.
- Przeczytaj plan. Plan sprzedawany ze współdzielonym vCPU może pokazywać steal; właśnie dlatego kosztuje mniej. Strona o różnicy między współdzielonym vCPU a dedykowanym vCPU wyjaśnia, co daje każdy z nich.
Wolny VPS z zerowym steal wskazuje gdzie indziej: oczekiwanie na dysk (kolumna wa, czas oczekiwania na I/O), presja na pamięć lub sama aplikacja.
Co powoduje steal time i co to naprawia?
Steal rośnie, gdy hostingodawca sprzedał więcej zajętych vCPU, niż ma wątków sprzętowych, by je uruchomić. Gdy wszyscy goście naraz proszą o CPU, część musi czekać, a to czekanie jest liczone jako steal u każdego z nich.
Co możesz zrobić, od najmniejszego do największego wysiłku:
- Przenieś ciężką pracę na godziny, gdy hostingodawca jest mniej obciążony, jeśli pozwala na to Twój workload.
- Poproś hostingodawcę o przeniesienie Twojego VPS na mniej obciążony węzeł; log z
mpstatczyni prośbę konkretną. - Zmień typ planu. Dedykowany vCPU usuwa innych gości z Twoich wątków. Hostingodawcy, którzy je sprzedają, ze słowami, których każdy używa, i ceną za rdzeń, są wymienieni w ile kosztuje dedykowany CPU VPS za rdzeń w listopadzie 2026.
Według badania Cobaltfell z 2 listopada 2026 22 z 51 hostingodawców VPS przyjmujących kryptowaluty bez dokumentu tożsamości obiecywało w piśmie dedykowany CPU, a żaden z nich nie pokazał pomiaru steal time na stronach, które czytaliśmy.
Dodawanie kolejnych współdzielonych vCPU rzadko pomaga: więcej wątków z tego samego zatłoczonego hosta czeka w tej samej kolejce.
W bazie danych steal widać najpierw w najwolniejszych zapytaniach, jak wyjaśniono w jak CPU steal wpływa na opóźnienie p99 PostgreSQL na VPS.
Jaki steal powinien pokazywać VPS Cobaltfell?
Na dedykowanym vCPU steal time powinien wynosić zero lub blisko zera. Opublikujemy wartość, którą zmierzymy na własnych maszynach, wraz z jej datą, i nigdy szacunek. Każdy vCPU jest zarezerwowany dla jednego VPS: vCPU to jeden wątek sprzętowy procesora hosta. Twoje są przypięte jeden do jednego do Twojego VPS i nigdy nie są pożyczane innemu klientowi, a dwa wątki jednego fizycznego rdzenia trzymają się razem, więc każde 2 vCPU tworzą jeden pełny rdzeń, którego nie dzieli żaden sąsiad.
Nasze własne wyniki YABS i Geekbench 6, wraz z mierzonym przez nas steal time, zostaną opublikowane z datą, gdy tylko nasza pierwsza maszyna testowa zostanie dostarczona. Do tego czasu nie podajemy żadnych własnych wartości wydajności. Dopóki ta strona nie zawiera opatrzonej datą liczby, uruchom powyższe polecenia na własnym VPS; jeśli steal utrzymuje się, gdy działa Twoje zadanie, log wystarczy do zgłoszenia. Najlepsi dostawcy dedykowanego CPU VPS w 2026 są porównani według tych samych spisanych kryteriów, w tym my. Człowiek odpowiada na e-maile supportu w ciągu 12 godzin, siedem dni w tygodniu, w tym pomaga z kluczami SSH, reinstalacjami i regułami firewalla.
Jakie inne pytania ludzie zadają o CPU steal time?
Czy steal time to to samo co iowait?
Nie. Steal (st) to czas, w którym Twój vCPU chciał działać, ale hypervisor uruchamiał innego gościa. Iowait (wa) to czas, w którym CPU stał bezczynnie, czekając na zakończenie dysku lub innego I/O. Wysoki iowait wskazuje na pamięć masową, wysoki steal na kontencję CPU.
Dlaczego top nie pokazuje wartości st?
Strona podręcznika top zauważa, że pole st może nie być wyświetlane w zależności od wersji jądra. W obecnych dystrybucjach pojawia się w wierszu %Cpu(s); na starym jądrze lub poza maszyną wirtualną może go brakować albo pozostawać na zerze.
Czy serwer dedykowany może pokazywać steal time?
System działający bezpośrednio na sprzęcie, bez hypervisora pod spodem, nie ma kogo go pozbawiać, więc licznik pozostaje na zerze. Steal istnieje tylko dla gościa działającego pod hypervisorem.
Jaka wartość steal jest zbyt wysoka?
Żaden standard nie ustala limitu. Użyj arytmetyki: przy 10% steal zadanie obciążające CPU dostaje około 90% czasu, którego potrzebuje. W planie sprzedawanym z dedykowanym vCPU steal powinien pozostawać na zerze lub blisko niego, gdy pracujesz.
Czy steal time wpływa na opóźnienie tak samo jak na przepustowość?
Tak. Każde oczekiwanie opóźnia zapytanie, które działało na tym vCPU, więc steal pojawia się najpierw w najwolniejszych zapytaniach, p99 bazy danych lub API, zanim przesunie średnią.
Źródła (6)
- MSR specyficzne dla KVM: MSR_KVM_STEAL_TIME — The Linux Kernel documentation (checked 2026-11-02)
- proc_stat(5): statystyki jądra/systemu — man7.org (Linux man-pages 6.19) (checked 2026-11-02)
- strona podręcznika top(1) — man7.org (procps-ng) (checked 2026-11-02)
- strona podręcznika vmstat(8) — man7.org (procps-ng) (checked 2026-11-02)
- strona podręcznika mpstat(1) — man7.org (sysstat) (checked 2026-11-02)
- strona podręcznika systemd-detect-virt(1) — man7.org (systemd) (checked 2026-11-02)