vCPU 与内存超分实践
超分是把物理资源按比例分配给多于实际容量的虚机,靠业务负载不会同时打满来换取更高的整合密度。vCPU 超分看平均负载与突发特征,内存超分依赖气球回收与宿主换页,风险更高。超分本身不是问题,问题是没有监控与安全余量——峰值叠加时宿主过载,上面所有虚机会一起变慢。
基本信息
| vCPU 超分 | 按业务突发特征设定比例,从低比例起步并逐步压测验证 |
|---|---|
| 内存超分 | 只在长期占用偏低时可做,需配合气球驱动与监控 |
| 安全余量 | 宿主保留自身开销与应急内存,避免全局换页 |
| 监控指标 | 宿主 load、guest 的 steal 时间、swap 使用与内存压力指标 |
| 起步策略 | 关键业务不超分或低比例超分,并为此配置告警阈值 |
超分相关观察点
| 指标 | 位置 | 含义 |
|---|---|---|
| steal | guest 内 top 的 st 列 | 等待物理 CPU 的比例 |
| PSI | /proc/pressure/* | CPU、IO、内存的压力停顿信息 |
| swap | 宿主 free 与 vmstat | 出现换页说明内存压力已经很高 |
| load | 宿主 uptime、top | 与核数对比判断是否过载 |
典型使用场景
- 开发测试环境:负载轻且可容忍波动,适当提高超分比例
- 成本优化评审:评估现有虚机能否在不影响业务的前提下提高密度
- 容量规划:为新宿主选定安全余量与超分上限
- 性能排查:业务变慢时先看宿主是否存在资源争抢
- 弹性场景:高峰期间临时增加负载,验证超分余量是否够用
观察超分压力的常用命令
观察超分压力的常用命令
uptime # 宿主 load 与核数对比
vmstat 1 5 # 关注 si/so 换页与 r 队列
cat /proc/pressure/cpu # CPU 压力停顿
cat /proc/pressure/memory # 内存压力停顿
virsh domstats vm1 --vcpu # 单个域的 vCPU 时间分布超分与稳定性是取舍关系:关键业务建议不超分或低比例超分,并配置告警阈值,别等业务投诉才发现宿主长期过载。
超分能力与内存策略相互牵制:大页与内存锁定会削弱或禁用超分,气球和换页相关能力的实际效果还取决于 guest 内驱动是否齐备。