For the complete documentation index, see llms.txt. This page is also available as Markdown.

CPU 超分配与资源规划

了解 VergeOS 中的 CPU 分配、超分配比和性能影响,包括按工作负载类型推荐的比率和容量规划计算。

概述

CPU 超额预配(也称为超分配)允许你分配给工作负载的虚拟 CPU 核心数超过实际可用的物理核心数。本指南解释 VergeOS 如何处理 CPU 资源、超额预配的影响,以及容量规划的最佳实践。

VergeOS CPU 分配方式

虚拟核心与物理核心

当你为 VM 分配 vCPU 时,你是在分配 虚拟核心 这些核心会被调度到物理 CPU 核心上。VergeOS 不会为 VM 独占预留物理核心,而是通过时间片轮转来共享物理资源。

要点:

  • 默认情况下,vCPU 不会绑定到物理核心

  • 来自不同 VM 的多个 vCPU 可以共享同一个物理核心

  • 虚拟机管理程序调度器负责 CPU 时间分配

“每台机器最大核心数”设置

此集群设置控制单个工作负载(VM、租户节点或 NAS 服务)可分配的 CPU 核心最大数量。

位置: 基础设施 > 集群 > [集群名称] > 编辑

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

过度超额预配的迹象

  1. CPU 就绪时间高: VM 正在等待可用的物理 CPU

  2. 性能不稳定: 应用有时表现良好,有时表现很差

  3. 客户机操作系统显示高 CPU: 但虚拟机管理程序显示的利用率较低

容量规划

计算可用 CPU 容量

对于具有 N+1 冗余的集群:

示例: 4 节点集群,每个节点 32 核心,目标比例 2:1

  • 可用: (4-1) × 32 = 96 核心

  • 可用 vCPU:96 × 2 = 192 个 vCPU

迁移注意事项

当某个节点故障或进入维护时:

  • 所有 VM 都必须能容纳在剩余节点上

  • 每个 VM 都必须符合“每台机器最大核心数”设置

  • 如果没有单个节点能够承载,拥有大量 vCPU 的 VM 可能会被卡住

最佳实践

一般指南

  1. 在分配之前先监控: 在增加容量前,先了解实际的 CPU 使用模式

  2. 合理设置 VM 规模: 先使用较少的 vCPU,再根据需要增加

  3. 预留余量: 保留 20-30% 的容量用于突发和故障转移

  4. 谨慎使用 CPU 限制: 它们会阻止 VM 使用可用的空闲资源

集群设计

  1. 保持节点大小一致: 让容量规划更简单

  2. 按 N+1 规划: 始终假定会有一个节点不可用

  3. 记录假设: 记录你的超额预配目标及其原因

VM 配置

  1. 将 vCPU 与工作负载匹配: 更多的 vCPU 并不总是意味着更好的性能

  2. 考虑 NUMA: 对于大型 VM,请将 vCPU 限制在 NUMA 节点边界内

  3. 测试性能: 使用真实负载进行基准测试

监控 CPU 健康状况

需要关注的关键指标

度量值
健康范围
超出时的处理措施

集群 CPU 利用率

平均 < 70%

增加节点或减少 VM

节点 CPU 利用率

持续 < 80%

检查 VM 分布

单个 VM CPU

因工作负载而异

调整规模或进行调查

使用 VergeOS 仪表板

  1. 导航到 基础架构 > 集群

  2. 查看 CPU 利用率图表

  3. 点击单个节点查看每节点指标

  4. 在每个 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 数量保持在单个插槽核心数以内或以下。

相关主题

最后更新于

这有帮助吗?