服务器超卖(Overcommit,又叫超分)是虚拟化平台中最常见、也最容易被忽视的问题之一。很多人第一次遇到虚拟机卡顿、进程突然变慢、业务性能抖动、top 里 st 飙升,其实背后核心就是:物理机被“超卖”了。
这篇文章带你彻底搞懂:
- 什么是超卖(Overcommit)
- CPU、内存、IO 三种资源如何超卖
- 如何判断当前物理机是否超卖
- “st(steal time)”到底代表什么
- 超卖对虚拟机的真实影响
- 应该把超卖比例控制在多少
- 如何避免业务被超卖带来的性能抖动
一、什么是服务器超卖?
什么是 cpu steal time?如果你在物理机上查看这个指标,这个指标必然是 0,只有虚拟机才需要关注这个指标。我们看一下 CPU steal time 的定义(来自 ibm.com):
Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
虚拟机毕竟是被虚拟出来的,虚拟机要用到 CPU,最终还是要通过宿主机的CPU来完成,如果宿主机的 CPU 正在为其他虚拟机服务,那么当前虚拟机就会等待,这个等待的时间就是 steal time。
超卖(Overcommit)是云服务厂商(如AWS、Azure、Google Cloud等)或虚拟化平台提供商(如VMware、KVM等)常用的一种资源管理策略。云服务厂商的硬件资源(如CPU、内存、GPU、存储等)有限,为了提高资源利用率,降低成本。通过超卖,厂商能更高效利用资源。实现以下目标:
- 提高资源利用率:许多用户资源使用率不高,存在明显波峰波谷,超卖可充分利用闲置资源。
- 降低成本:用更少硬件资源支持更多用户,降低单位成本。
- 灵活定价:提供更灵活的定价模型(如按需付费、预留实例等),吸引更多用户。
你购买的云主机也可能出现超卖问题哦!
一句话总结:超卖 = 分配给虚拟机的资源 物理机的真实资源。
比如一个物理机有16核CPU,但你创建的虚拟机总 CPU 数量却是:
VM1:6 vCPU
VM2:8 vCPU
VM3:4 vCPU
VM4:6 vCPU
总和 = 24 vCPU
24 vCPU 16 实际核➡️ 这就是CPU 超卖。
同样道理:


闽公网安备 35020602001684号