发布时间:2026-09-10 15:33
购买 VPS 后,很多人都会关心一个问题:服务商有没有超售?自己的 VPS 是否正在和过多“邻居”争抢 CPU、磁盘等资源?
在 VPS 内部,我们通常看不到宿主机运行了多少台虚拟机,也无法准确计算服务商超售了多少倍。不过,可以通过 CPU 抢占、任务排队、磁盘延迟和不同时段的性能变化,判断 VPS 是否正在受到宿主机资源争用的影响。
一、什么是“母鸡”和“超售”?
一台物理服务器通常会运行多台 VPS,它们共同使用物理 CPU、内存、磁盘和网络。普通 VPS 标注的“2 核”或“4 核”,通常是虚拟 CPU 数量,并不代表这些物理核心由一台 VPS 独占。
真正需要判断的不是“有没有任何超售”,而是超售是否已经造成持续、可观察的性能下降。
在 Linux VPS 中运行:
top
顶部会显示类似内容:
%Cpu(s): 1.2 us, 0.0 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
st 是 Steal Time 的缩写,表示虚拟机已经准备好运行,但宿主机暂时把物理 CPU 分配给了其他虚拟机。
例如,程序在 10 秒内一直需要 CPU,但宿主机只分配了 8 秒,另外 2 秒用于运行其他 VPS,那么这段时间的 %st 就可能接近 20%。
瞬间升高不能证明服务商一定超售。只有在 VPS 确实有 CPU 任务时,%st 连续数分钟偏高,并且程序同时变慢,才具有较强参考价值。
st 更像“CPU 争用提示”,而 wa 更像“存储瓶颈提示”。wa 高可能来自 VPS 自身大量读写、数据库随机 I/O、云盘限速,也可能来自宿主机共享存储拥堵。
建议连续观察 60 秒:
vmstat 1 60
重点关注:
查看 VPS 的 vCPU 数量:
nproc
安装 sysstat 后运行:
iostat -xz 1 60
重点查看 await、r_await、w_await 和 aqu-sz。与其套用固定阈值,不如比较同一台 VPS 在凌晨、白天和晚高峰的变化。
如果 VPS 自身读写量没有明显增加,但每天晚高峰的磁盘延迟都会明显升高,就可能存在共享存储争用。
Windows 任务管理器通常没有直接对应 Linux %st 的指标,需要结合性能监视器和资源监视器判断。
按 Win + R,输入 perfmon。如果系统提供 Hyper-V Hypervisor Virtual Processor,可以关注 CPU Wait Time Per Dispatch。它最接近虚拟 CPU 等待宿主机调度的概念。
找不到这个计数器,不代表母鸡没有超售,只表示客户机无法直接读取相关数据。
在性能监视器中添加:
Processor → % Processor Time → _Total
System → Processor Queue Length
队列长期明显高于逻辑处理器数量,说明线程正在等待 CPU。但如果 CPU 本身接近 100%,也可能只是 VPS 内的程序太忙,不能单独据此认定宿主机超售。
按 Win + R,输入 resmon,进入“磁盘”页面,查看响应时间、磁盘队列长度以及具体读写进程。
也可以在性能监视器中添加:
PhysicalDisk → Avg. Disk sec/Read
PhysicalDisk → Avg. Disk sec/Write
PhysicalDisk → Current Disk Queue Length
计数器单位是秒:0.005 等于 5 毫秒,0.020 等于 20 毫秒,0.100 等于 100 毫秒。
分别在凌晨、白天、晚高峰和实际卡顿时记录:
%st,或 Windows 可用的虚拟 CPU 等待指标;如果业务负载相近,但每天晚高峰都反复出现 CPU 等待升高、任务队列变长、磁盘延迟增加和应用变慢,而到凌晨后又恢复正常,就有较强理由怀疑宿主机存在资源争用。
%st 很高;这些现象都可能由 VPS 自己的程序、系统更新、数据库、备份、网络或磁盘读写造成。
从 VPS 内部,通常无法证明服务商究竟超售了多少倍。真正能够判断的是:自己的 VPS 是否正在因为宿主机 CPU、共享存储或其他资源争用而受到影响。
Linux 中,%st 是 CPU 争用最直接的提示;Windows 则需要结合虚拟 CPU 计数器、Processor Queue Length 和磁盘响应时间。最可靠的方法不是看一次截图,而是连续记录并比较不同时段的数据。
我们很高兴能为您服务
您可以通过工单等方式联系我们~