资源池与配比三要素
资源池把集群或主机的 CPU 与内存按份额、预留与上限切分给不同团队或业务,是 vSphere 里做资源配额与隔离的基础手段。理解三个配比参数是关键:份额(Shares)是资源争用时的相对权重,预留(Reservation)是必须保障的绝对量,上限(Limit)是不允许超过的天花板。三者配合才能既保证关键业务,又不让空闲资源被浪费。
基本信息
| 适用平台 | vSphere/ESXi 集群或主机层级(vCenter 中配置) |
|---|---|
| 三要素 | Shares 相对权重、Reservation 绝对预留、Limit 绝对上限 |
| 继承关系 | 子资源池继承父级设置,可在子池单独覆盖 |
| 单位 | CPU 预留为 MHz,内存预留为 MB 或 GB |
| 典型场景 | 多租户隔离、生产与测试混部、按部门配额 |
| 权限要求 | 对集群或资源池有配置权限的账号 |
典型使用场景
- 生产与测试混部:给测试池设置低份额,避免抢占生产资源
- 多租户场景:按团队划分资源池,各自配额互不侵占
- 关键业务保障:为交易类业务设置预留,确保高峰性能下限
- 限制离线任务:给批量计算池设上限,防止它吃掉整个集群
- 容量规划验证:用预留总量估算集群还能容纳多少虚机
- 故障隔离演练:把异常业务限制在池内,避免影响同集群其他业务
查询与调整(PowerCLI)
查询与调整(PowerCLI)
Get-ResourcePool -Location (Get-Cluster Prod) | Select-Object Name,CpuSharesLevel,CpuReservationMHz,CpuLimitMHz # 盘点现有池
New-ResourcePool -Name Test -Location (Get-Cluster Prod) -CpuSharesLevel Low -MemSharesLevel Low # 新建低优先级池
Set-ResourcePool -ResourcePool (Get-ResourcePool -Name Test) -CpuReservationMHz 4000 -MemReservationMB 8192 # 设置预留
Get-ResourcePool -Name Test | Select-Object Name,CpuReservationMHz,MemReservationMB,
CpuLimitMHz,MemLimitGB # 复查生效值,注意上限为 -1 表示不限制三要素对照
| 参数 | 作用 | 设置建议 |
|---|---|---|
| Shares | 资源争用时的相对权重 | 按业务优先级分级,正常时不起作用,争用时才生效 |
| Reservation | 必须保障的绝对资源量 | 按业务性能下限设置,过大压缩同集群其他虚机的空间 |
| Limit | 不允许超过的天花板 | 只用于限制非关键或离线负载,给生产业务设限会造成性能封顶 |
| 继承 | 子池默认继承父池设置 | 关键业务在子池单独调整,避免父池变更影响过大 |
| 总量核对 | 所有预留之和不能超过集群可用资源 | 扩容或新部署前先核算剩余可预留量 |
份额只在资源争用时才起作用:空闲时所有虚机都能拿到超额资源,因此不能用份额来代替性能保障,需要硬性保障时要用预留。
给生产业务误设 CPU 上限会造成性能封顶,且在监控上表现为 %MLMTD 而非资源不足,容易误判为扩容需求。