Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Article5 min readViews0

Steal Time on VPS: How to Check CPU Wait in Linux

The st column helps detect CPU wait at the virtualization level. A quick vmstat check, its result thresholds, and data for a targeted inquiry to the provider.

Comments 0

A processor next to hourglasses on a graphite background: illustration of compute time wait.
In this article

During catalog import, the store responds slowly, yet no process inside the VPS appears particularly busy. The virtual machine has another possible source of delay: its virtual processor is ready to work, but the physical processor is not yet available. In Linux, part of this wait is reflected as steal time. First, check whether it occurred at the right moment, and only then discuss the causes with the provider.

This guide is intended for a VPS administrator running Ubuntu 24.04 LTS and the vmstat utility from procps-ng 4.0.4. Authorized terminal access to the guest OS and read access to procfs system statistics are required. Typically, standard user privileges are sufficient for the commands provided. Access denial must not be bypassed by escalating privileges. For a container running inside a VPS, the scope of visible statistics must be determined separately; it cannot be automatically assumed to represent metrics for that specific container.

What Steal Time Measures

The hypervisor distributes CPU time among virtual machines. In Linux documentation for KVM, steal time describes the period when a virtual processor was not executing; its own idle time is not included in this metric. In the vmstat output, the relevant column is named st and is expressed as a percentage of total CPU time. This is not the percentage used by a specific store process.

From a guest machine, you can see the wait trace, but you cannot identify the neighboring virtual machine or prove a tariff violation based on it. Such conclusions require data from the host side and resource allocation rules. The result also depends on accounting support in the hypervisor and guest OS combination. A zero result in a short sample does not confirm the absence of all performance limitations.

Take a Short Sample During the Delay

  1. Check the installed utility:

    vmstat --version

    For the described scenario, the procps-ng version 4.0.4 family is expected. If the command is missing or the output refers to a different implementation, stop and check the environment documentation. Installing packages is not part of this instruction.

  2. Record the observation time and time zone, then obtain six reports at one-second intervals:

    vmstat 1 6

    The first CPU report averages time since system boot. For the current episode, view the following five lines. The command will terminate automatically; the output is not a record of a long-term incident. This is a limited read sample, not a load test. Do not run multiple such observations simultaneously.

  3. Find st by title and save the rows along with the remaining columns. After the episode completes, repeat the same short selection during a quiet period. Note whether non-zero values coincided with the delay specific to the store action. You must compare observations against known times, not screenshots from different days without context.

The teams aligned with the official Ubuntu Noble guidelines as of September 27, 2026, and executed the tests in an isolated Ubuntu 24.04.3 environment with procps-ng 4.0.4. Six rows were obtained; in all st the value was zero. Startup and output format were verified. CPU contention on a real virtualization node was not reproduced, so this run does not test VPS behavior under such load.

Compare Wait Time with Work Inside the Machine

Adjacent columns help determine the direction: us reflects user code execution, sy reflects kernel code, and id reflects idle time. The value wa relates to I/O wait. For wa, kernel documentation separately describes accounting limitations, so it cannot be considered an accurate measure of disk latency. Keeping the full header is more useful than passing a single number without the metric name.

Hypothetical example: after the first line in five-second reports, st sequentially equals 0, 12, 18, 0, and 0. The average of these five is 6%. However, such an average hides two short spikes. If a slow request coincided with those spikes, a hypothesis about CPU wait influence arises. These are training numbers, not results from our run, nor an acceptable threshold for any VPS.

From these 6%, one cannot conclude that every store request took 6% longer. Tasks differ in CPU requirements, may wait for a database or external service; averaging across processors and time loses details. To link to a user symptom, request and observation intervals are needed. Even their coincidence supports a hypothesis but does not by itself prove a single cause.

If user code activity grows predominantly at a low st, the next question is which processes and operations are consuming CPU. If noticeable virtual CPU wait time recurs, provider data on time allocation on the host is useful. Both phenomena can coexist. Purchasing additional virtual CPUs without understanding the bottleneck does not guarantee that latency will disappear.

Send the Provider the Verified Episode

It is sufficient to include your VPS identifier, time, time zone, OS version, and utilities, a few lines with a header, the symptom duration, and an anonymized description of the store action. Request that this interval be matched against host wait times and existing CPU resource limits. A full store database, passwords, and logs containing customer data are not needed for initial analysis.

If further checks involve a reboot, migration, or tariff change, this is a separate operation: agree in advance on the impact on availability, data integrity, and result verification. The st indicator itself does not prescribe any of these actions. A useful outcome of short-term observation is to determine whether virtual CPU wait time was recorded during the issue and pass the next question to whoever has host data.

Discussion 0

Share your experience and ask questions. Comments without links appear after editorial review.

No comments yet. Start the discussion.