性能

什么是CPU steal time?

又称: st time
定义

Steal time is the proportion of time a virtual CPU was ready to run but the hypervisor gave the physical core to another guest. It appears as the "st" column in top and vmstat. Sustained values above 2–3% indicate contention and show up as tail-latency spikes rather than as uniformly slow throughput.

为什么CPU steal time很重要

它显示在top和vmstat的“st”列中。持续高于2-3%的值表示争用,表现为尾部延迟峰值,而不是均匀的吞吐量下降。

CPU steal time的实际应用

当你运行服务器时,关注 top 和 vmstat 中的 st 列。如果持续高于2–3%,你的CPU正在被共享,超出你的工作负载预期。代价不是均匀的减速——而是破坏时间敏感任务的尾部延迟峰值。你可能需要更改实例大小或迁移到不太拥挤的主机。如果忽视它,你会在自己的调优中追逐幻影,而真正的瓶颈在虚拟机监视器一侧。

人们对CPU steal time常见的误解

人们常将CPU窃取时间误认为自己的进程消耗了太多CPU。不是这样。窃取时间意味着你的虚拟CPU已就绪,但虚拟机监视器将物理核心给了另一个客户。修正:看 st 列,而不是 user 或 system 列。高窃取意味着问题在实例外部,而不是内部。

CPU steal time —— 常见问题

为什么我的VPS上CPU窃取时间如此高?

高窃取时间通常意味着你的虚拟机监视器过度订阅。同一物理主机上的其他客户正在竞争核心。这不单独是你的工作负载造成的。如果 st 持续高于2–3%,考虑迁移到争用较少的提供商或专用核心。

我自己能减少CPU窃取时间吗?

不是直接从你的实例内部。Steal time 是由虚拟化层(hypervisor)强加的。你可以通过优化代码来减少对 CPU 的依赖,但实际的 steal 只有在宿主机负载降低时才会减少。有时迁移到不同的物理主机会有帮助。

更多来自性能

RTT
RTT 是数据包到达目的地并返回响应所需的时间,以毫秒为单位。
抖动
抖动是数据包延迟随时间的变化,不同于平均延迟本身。
TTFB
TTFB 衡量从发送请求到收到响应的第一个字节所花的时间。