如何用 CPU Steal Time 判断 VPS / 云服务器超卖
配置看起来不差,业务却时不时卡顿?很多时候问题不在你的代码,而在宿主机把物理 CPU 分给了别的租户。CPU Steal Time 是从虚拟机内部就能看到的核心信号,也是云服务器超卖检测最有效的切入点。
什么是 CPU Steal Time?
Steal Time(在 top 里常显示为 st,在 mpstat 里为 %steal)表示:你的虚拟 CPU 已经准备好执行,但 Hypervisor 把物理核分给了其他虚拟机,你被迫等待的时间占比。
它不是“CPU 使用率高”,而是“CPU 想用却拿不到”。因此 Steal Time 能区分应用自身忙与宿主机争抢——后者正是超卖与恶邻干扰的典型表现。
怎样的 st 算正常?
不同业务对抖动敏感度不同,下面是业界常用的经验阈值(需在业务高峰期持续观察,而不是空闲凌晨看一眼):
- 低于约 2%:通常健康,宿主机负载可控
- 约 2%~5%:轻度争抢,高峰可能有体感波动
- 约 5%~10%:中度超卖迹象,延迟抖动值得警惕
- 持续高于约 10%:重度争抢,建议取证、投诉或迁移
手工检测:三条命令
SSH 登录后,在业务高峰各采样本 1~5 分钟:
- top:看第三行 %Cpu(s) 中的 st
- vmstat 1:观察 st 列是否持续抬升
- mpstat 1(需 sysstat):关注 %steal
只看 st 还不够
st 反映 CPU 争抢,不直接等于“超卖比例”。要交叉验证:磁盘 await/%util、持续压测下的性能断崖、不同时段对比(晚高峰 vs 凌晨)。
若 st 高且应用 p95 延迟同步升高,基本可以认定是基础设施侧问题,而不是单纯调优应用能解决的。
用 CloudWorth 一键完成超卖取证
CloudWorth 把高频 Steal Time 采样、磁盘虚标检测、硬件代际识别与价格对撞做成零依赖探针,约 10 秒生成可导出的 FinOps / 维权报告。
适合不想手工拼 top + fio + 表格的开发者与运维:打开 getcloudworth.com,获取探针命令即可开始检测。