获取验证码
很多运维看性能指标时会忽略Co‑Stop,该指标反映虚拟机多颗vCPU之间的调度同步等待。Co‑Stop数值持续走高,虚拟机内部会出现莫名其妙卡顿、业务响应延迟大,但虚拟机内CPU使用率并不高。 最常见诱因是虚拟机分配过多vCPU,物理主机CPU核心资源紧张,ESXi调度器无法一次性给到虚拟机所需全部物理核心。处理思路优先缩减多余vCPU,必要时配置CPU预留,同时排查主机整体负载。下面完整拆解故障。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
对于有多颗vCPU的虚拟机,ESXi调度器需要为虚拟机所有vCPU尽量同时分配物理CPU时间片。 如果部分vCPU拿到时间片,另外一部分vCPU需要排队等待,等待的时间就统计为Co‑Stop。Co‑Stop百分比越高,代表多vCPU同步等待越严重。
虚拟机操作系统内CPU占用率不高,但应用卡顿、延迟大
业务偶发停顿,无规律,重启虚拟机短暂好转后复现
esxtop中%CoStop指标持续大于5%,属于异常状态
主机CPU整体负载并不跑满,但多台多vCPU虚拟机同时运行
很多虚拟机直接分配8vCPU、16vCPU,但业务负载很低。ESXi需要一次性调度出对应数量物理核心,主机资源紧张时很难满足,就产生大量Co‑Stop。vCPU配得越多,调度压力越大。
主机上面运行大量多vCPU虚拟机,物理核心被抢占,调度器无法腾出足够的并行时间片,引发跨vCPU等待。NUMA架构下NUMA跨节点访问也会加重该现象。
关键业务虚拟机和大量低优先级虚拟机争抢CPU时间片,当主机CPU压力上来,关键VM的vCPU会被抢占,Co‑Stop抬升。设置CPU预留可以保障最低CPU时间配额。
主机开启超线程,逻辑核心过多,调度复杂度提升
虚拟机CPU亲和性设置不合理,限制可用物理核心范围
主机存在其它高负载虚拟机抢占物理CPU资源
SSH登录ESXi主机,执行esxtop,按c切换到CPU视图,观察%CoStop列。 一般建议:业务虚拟机Co‑Stop稳定控制在3%以内;持续超过5%就需要介入优化。
优先在虚拟机操作系统内部查看实际CPU负载,很多业务实际只用到2‑4核,却分配8/16 vCPU。 根据真实负载下调vCPU,vCPU越少,ESXi调度压力越小,Co‑Stop会直接下降。 > 注意:修改vCPU需要关机调整,业务窗口执行。
对不能减vCPU的核心业务VM,编辑虚拟机设置‑资源‑CPU,配置CPU预留(Reservation)。 预留代表保证给到该虚拟机最低CPU周期,避免被其他虚拟机过度抢占。 预留不要盲目设置过高,预留总和不能超过主机物理CPU总能力,防止资源锁定浪费。
查看主机整体CPU负载,如果大量虚拟机Co‑Stop同时走高,代表主机CPU资源过载,需要做虚拟机负载迁出,分摊到其他ESXi节点。 谨慎使用CPU亲和性,非特殊场景不建议配置,亲和性会缩小调度可选物理核心,反而加剧Co‑Stop。
大内存大vCPU虚拟机,尽量保证vCPU、内存落在同一个NUMA节点,避免跨NUMA调度带来额外开销。开启虚拟机NUMA感知,不要手动禁用NUMA。
| 现象 | 根因方向 | 处理方式 |
|---|---|---|
| 单台VM Co‑Stop高,主机CPU总体使用率不高 | 虚拟机vCPU分配过多,远超业务实际负载 | 评估业务负载,降低虚拟机vCPU数量 |
| 关键业务Co‑Stop波动大,其他虚拟机负载较高 | CPU时间片被其它虚拟机抢占 | 配置合理CPU预留,保障核心VM调度优先级 |
| 主机上多台虚拟机同时Co‑Stop偏高 | 整机CPU调度压力大,负载过载 | 执行DRS迁移,分担虚拟机到其他主机,降低整机压力 |
| 配置CPU亲和性后Co‑Stop反而升高 | 亲和性限制可用物理CPU核心池 | 删除CPU亲和配置,交给ESXi调度器自动管理 |
| 大规格VM,内存vCPU跨NUMA节点,Co‑Stop高 | 跨NUMA节点调度与内存访问开销 | 调整虚拟机规格,尽量适配单NUMA节点资源 |
1. 误区:给虚拟机vCPU配越大性能越好纠正:多余vCPU会加重ESXi调度负担,带来更高Co‑Stop,反而让虚拟机变卡,按需分配才最优。
2. 误区:Co‑Stop高就直接加大CPU预留,不缩减vCPU纠正:预留是保障手段,不能解决vCPU过多带来的调度复杂度,优先评估缩减vCPU。
3. 误区:虚拟机内CPU占用低,就代表没有性能问题纠正:Co‑Stop属于虚拟化层调度等待,虚拟机内部操作系统看不到该等待,容易被忽略。
4. 误区:设置CPU预留越大越好纠正:预留会锁定主机CPU资源,预留总和超过主机能力会导致无法开机,需要控制预留总量。
分配vCPU依据业务真实负载,拒绝盲目高配vCPU,避免调度压力
日常监控esxtop %CoStop指标,阈值参考持续大于5%触发告警
核心业务优先通过缩减vCPU优化,CPU预留作为辅助保障手段
非特殊需求不要配置CPU亲和性,交由ESXi调度器自动调度
大规格虚拟机关注NUMA对齐,尽量让vCPU、内存落在同一个NUMA节点
集群环境利用DRS负载均衡,避免单台ESXi承载过多大vCPU虚拟机
虚拟机CPU Co‑Stop过高,本质是ESXi调度器无法为虚拟机全部vCPU及时分配物理CPU时间片。优先检查并减少虚拟机多余vCPU;核心业务无法降配时,配置合理的CPU预留保障调度资源。 若整机多台虚拟机同时Co‑Stop异常,代表主机CPU调度压力过载,通过DRS迁移分摊负载。不要只看虚拟机内部CPU使用率,虚拟化层Co‑Stop指标同样是业务卡顿重要排查点。