CPU 超分配与资源规划
了解 VergeOS 中的 CPU 分配、超分配比和性能影响,包括按工作负载类型推荐的比率和容量规划计算。
概述
CPU 超额预配(也称为超分配)允许你分配给工作负载的虚拟 CPU 核心数超过实际可用的物理核心数。本指南解释 VergeOS 如何处理 CPU 资源、超额预配的影响,以及容量规划的最佳实践。
VergeOS CPU 分配方式
虚拟核心与物理核心
当你为 VM 分配 vCPU 时,你是在分配 虚拟核心 这些核心会被调度到物理 CPU 核心上。VergeOS 不会为 VM 独占预留物理核心,而是通过时间片轮转来共享物理资源。
要点:
默认情况下,vCPU 不会绑定到物理核心
来自不同 VM 的多个 vCPU 可以共享同一个物理核心
虚拟机管理程序调度器负责 CPU 时间分配
“每台机器最大核心数”设置
此集群设置控制单个工作负载(VM、租户节点或 NAS 服务)可分配的 CPU 核心最大数量。
位置: 基础设施 > 集群 > [集群名称] > 编辑
关键限制
此值应 绝不要超过 你最小节点上的物理核心总数
在大多数情况下,请将其保持在 单个 CPU 插槽内 以获得最佳 NUMA 性能
更改后超过此限制的 VM 无法迁移 直到减少核心数
CPU 超额预配比例
什么是超额预配比例?
总已分配 vCPU 与总物理核心数之比:
示例: 一个 2 节点集群,每个节点 32 核心(共 64 核),运行总计 96 个 vCPU 的 VM,其超额预配比例为 1.5:1。
按工作负载类型推荐的比例
轻量/办公负载
4:1 到 6:1
桌面 VM、文件服务器
混合通用型
2:1 到 4:1
典型企业混合负载
数据库/应用服务器
1:1 到 2:1
对性能敏感
高性能计算
1:1 或更低
CPU 密集型负载
从保守开始
从较低比例开始,并根据监控结果逐步提高。增加容量总比从性能不佳中恢复更容易。
性能影响
何时超额预配效果良好
突发型负载: 偶尔出现 CPU 峰值,但大部分时间处于空闲的 VM
时间分布不同: 在不同时间达到峰值的工作负载
I/O 密集型应用: 等待磁盘或网络的时间多于等待 CPU 的 VM
何时超额预配会带来问题
CPU 密集型负载: 持续使用 100% CPU 的应用
对延迟敏感的应用: 实时系统、VoIP、交易系统
同时需求: 所有 VM 都在同一时间需要 CPU
过度超额预配的迹象
CPU 就绪时间高: VM 正在等待可用的物理 CPU
性能不稳定: 应用有时表现良好,有时表现很差
客户机操作系统显示高 CPU: 但虚拟机管理程序显示的利用率较低
容量规划
计算可用 CPU 容量
对于具有 N+1 冗余的集群:
示例: 4 节点集群,每个节点 32 核心,目标比例 2:1
可用: (4-1) × 32 = 96 核心
可用 vCPU:96 × 2 = 192 个 vCPU
迁移注意事项
当某个节点故障或进入维护时:
所有 VM 都必须能容纳在剩余节点上
每个 VM 都必须符合“每台机器最大核心数”设置
如果没有单个节点能够承载,拥有大量 vCPU 的 VM 可能会被卡住
迁移就绪性
如果某个 VM 有 64 个 vCPU,而你的节点只有 32 个核心,那么该 VM 无法迁移 在维护或故障事件期间。请将 VM 核心数保持在单节点容量范围内。
最佳实践
一般指南
在分配之前先监控: 在增加容量前,先了解实际的 CPU 使用模式
合理设置 VM 规模: 先使用较少的 vCPU,再根据需要增加
预留余量: 保留 20-30% 的容量用于突发和故障转移
谨慎使用 CPU 限制: 它们会阻止 VM 使用可用的空闲资源
集群设计
保持节点大小一致: 让容量规划更简单
按 N+1 规划: 始终假定会有一个节点不可用
记录假设: 记录你的超额预配目标及其原因
VM 配置
将 vCPU 与工作负载匹配: 更多的 vCPU 并不总是意味着更好的性能
考虑 NUMA: 对于大型 VM,请将 vCPU 限制在 NUMA 节点边界内
测试性能: 使用真实负载进行基准测试
监控 CPU 健康状况
需要关注的关键指标
集群 CPU 利用率
平均 < 70%
增加节点或减少 VM
节点 CPU 利用率
持续 < 80%
检查 VM 分布
单个 VM CPU
因工作负载而异
调整规模或进行调查
使用 VergeOS 仪表板
导航到 基础架构 > 集群
查看 CPU 利用率图表
点击单个节点查看每节点指标
在每个 VM 的仪表板下查看 VM CPU 统计信息
有关集群监控的更多详细信息,请参阅 集群概览.
常见问题
我可以为单个 VM 分配比物理核心更多的 vCPU 吗?
可以,但很少有好处。某个节点上 vCPU 多于物理核心数的 VM 可能会经历调度延迟,因为虚拟机管理程序需要等待足够多的核心同时可用。
VergeOS 支持 CPU 绑定吗?
VergeOS 不支持 CPU 绑定(亲和性)。在底层,VergeOS 使用 Linux Completely Fair Scheduler(CFS)进行 CPU 调度。每个 vCPU 都映射为一个 Linux 进程/线程,所有 vCPU 线程共享同一个 CFS 运行队列。调度器使用全局公平性逻辑来决定哪个进程获得 CPU 时间以及获取顺序。
这种设计可确保资源的最佳利用,并在热迁移和故障切换时保持 VM 的可移动性。当你超额订阅 CPU 资源时,你是在与其他 VM 和租户共享这组物理核心。
这会如何影响软件许可?
某些软件(如 Oracle、SQL Server)是按物理核心或插槽授权的。VergeOS 的动态调度意味着你无法对 CPU 资源进行“硬性分区”。请咨询软件供应商的虚拟化许可政策——许多厂商提供按 vCPU 或按 VM 授权的模型,更适合现代虚拟机管理程序。
那 NUMA 呢?
对于拥有大量 vCPU 的 VM,VergeOS 会在可能的情况下尽量将内存和 CPU 分配保持在同一个 NUMA 节点内。为了获得最佳 NUMA 性能,请将 VM 的 vCPU 数量保持在单个插槽核心数以内或以下。
相关主题
最后更新于
这有帮助吗?