在各大 VPS 交流群中,经常能看到类似的说法:
看 top 命令里的 st 值就知道 VPS 超售了多少。
甚至有人认为:
- st=10%,说明超售10%
- st=50%,说明超售50%
- st=70%,说明超售70%
这种说法其实并不准确。
对于 VPS 用户来说,st(Steal Time)确实是判断宿主机资源是否紧张的重要指标,但它并不能直接反映宿主机的超售比例。本文将详细介绍 st 的含义,以及如何利用它正确判断 VPS 的运行状态。
什么是 Steal Time(st)?
在 Linux 系统中执行:
top
可能会看到类似输出:
%Cpu(s): 6.2 us, 12.7 sy, 0.0 ni, 8.8 id, 0.0 wa, 0.0 hi, 1.6 si, 70.8 st
其中:
| 参数 | 含义 |
|---|---|
| us | 用户态CPU时间 |
| sy | 系统态CPU时间 |
| ni | 调整优先级进程占用时间 |
| id | CPU空闲时间 |
| wa | 等待IO时间 |
| hi | 硬件中断时间 |
| si | 软件中断时间 |
| st | Steal Time |
Steal Time 是虚拟化环境中的一个特殊指标。
它表示:
虚拟机本来希望获得 CPU 时间片,但宿主机将 CPU 分配给了其他虚拟机,因此当前虚拟机只能等待。
换句话说:
Steal Time 反映的是 VPS 被宿主机“抢走”的 CPU 时间。
st 值高说明什么?
假设 VPS 需要持续使用一个 CPU 核心。
理论上:
CPU需求:100% 实际获得:100% Steal Time:0%
如果宿主机资源紧张:
CPU需求:100% 实际获得:50% Steal Time:50%
这说明:
有一半时间 CPU 被其他 VPS 占用了。
因此:
高 st 值通常意味着:
- 宿主机负载较高
- VPS 之间存在 CPU 资源竞争
- 当前 VPS 性能受到影响
st 是否等于超售比例?
答案是否定的。
例如:
st = 50%
只能说明:
当前 VPS 有约一半时间在等待 CPU 调度。
但无法得出:
宿主机超售50%
原因很简单。
用户无法知道:
- 宿主机实际有多少物理核心
- 开设了多少 VPS
- 分配了多少 vCPU
- CPU 权重策略
- CPU 限速策略
- 宿主机整体负载情况
真正的超售比例属于服务商内部数据。
例如:
情况一
物理CPU:32核 售出vCPU:64核
超售比:
2:1
情况二
物理CPU:32核 售出vCPU:320核
超售比:
10:1
两种情况都可能出现相同的 st 值。
因此:
st 可以反映资源争抢情况,但无法直接计算超售比例。
如何查看 st 指标?
方法一:top
top
查看 CPU 一行中的:
st
字段即可。
方法二:mpstat
安装:
apt install sysstat -y
或者:
yum install sysstat -y
查看:
mpstat 1
输出示例:
%usr %nice %sys %iowait %irq %soft %steal %idle
重点关注:
%steal
这一列。
方法三:vmstat
vmstat 1
输出中同样会显示:
st
指标。
什么样的 st 值算正常?
不同业务场景存在差异,但通常可以参考以下经验:
| st值 | 状态 |
|---|---|
| 0%~1% | 优秀 |
| 1%~3% | 正常 |
| 3%~5% | 轻微争抢 |
| 5%~10% | 开始影响性能 |
| 10%~20% | 超售较明显 |
| 20%以上 | 资源紧张 |
| 50%以上 | 严重争抢 |
需要注意的是:
短时间出现高 st 并不一定有问题。
例如:
- 邻居 VPS 突然跑满 CPU
- 宿主机正在执行任务
- 短时资源调度异常
这些都可能导致瞬时 st 升高。
判断时应持续观察数分钟甚至更长时间。
如何更准确判断 VPS 是否超售严重?
仅看 st 并不够。
建议结合以下指标一起分析:
CPU跑分
例如:
sysbench cpu run
或者:
yabs
观察成绩是否明显低于同型号 CPU 的正常水平。
持续压力测试
stress-ng --cpu 1 --timeout 60
测试过程中观察:
mpstat 1
如果持续出现较高 steal time,则说明 CPU 资源争抢较严重。
多时段测试
建议分别在:
- 白天
- 晚高峰
- 凌晨
进行测试。
如果晚高峰 st 明显升高,则很可能存在较高程度的资源共享或超售。
总结
Steal Time(st)是 VPS 性能分析中非常重要的指标。
它能够反映:
- CPU 是否被宿主机抢占
- 是否存在资源竞争
- VPS 是否受到邻居用户影响
但需要明确的是:
st 不等于超售比例。
真正的超售比例只有服务商能够掌握,而用户能够观察到的,是资源争抢带来的实际表现。
因此在 VPS 测评过程中,更合理的做法是结合 st、CPU跑分、压力测试以及长期监控结果进行综合判断,而不是简单地将 st 数值直接视为超售百分比。





