1.6. OpenStack Workflow Compute CPU 和内存计算器


OpenStack Workflow 计算 CPU 和内存的最佳设置,并使用结果填充 NovaReservedHostMemoryNovaCPUAllocationRatio 参数。

NovaReservedHostMemory

NovaReservedHostMemory 参数设置为主机节点保留的内存量(以 MB 为单位)。要确定超融合节点的适当值,假设每个 OSD 消耗 3 GB 内存。假设有 256 GB 内存和 10 个 OSD 的节点,您可以为 Ceph 分配 30 GB 内存,为 Compute 保留 226 GB。使用该节点可以托管最多的内存,例如,113 个实例分别使用 2 GB 内存。

但是,您仍然需要为 虚拟机监控程序 考虑每个实例的额外开销。假设这个开销为 0.5 GB,则同一节点只能托管 90 个实例,其中 226 GB 的帐户除以 2.5 GB。为主机节点保留的内存量(即 Compute 服务不应该使用的内存)是:

(在 * Ov 中)+(Os * RA)

其中:

  • 中:实例数量
  • OV: 每个实例所需的开销内存量
  • OS :节点上的 OSD 数量
  • RA: 每个 OSD 应该具有的 RAM 量

对于 90 个实例,这给我们(90*0.5)+(10*3)= 75 GB。计算服务预期这个值以 MB 为单位,即 75000。

以下 Python 代码提供这个计算:

left_over_mem = mem - (GB_per_OSD * osds)
number_of_guests = int(left_over_mem /
    (average_guest_size + GB_overhead_per_guest))
nova_reserved_mem_MB = MB_per_GB * (
    (GB_per_OSD * osds) +
    (number_of_guests * GB_overhead_per_guest))

NovaCPUAllocationRatio

在选择要在其上部署实例的 Compute 节点时,计算调度程序使用 NovaCPUAllocationRatio。默认情况下,这是 16.0 (如 16:1)。这意味着,如果节点上有 56 个内核,则计算调度程序会调度足够的实例在节点上消耗 896 个 vCPU,然后考虑节点无法托管。

要为超融合节点确定合适的 NovaCPUAllocationRatio,假设每个 Ceph OSD 至少使用一个内核(除非工作负载是 I/O 密集型,且在没有 SSD 的节点上)。在有 56 个内核和 10 个 OSD 的节点上,这会为 Compute 保留 46 个内核。如果每个实例在收到的 CPU 的每个 CPU 使用 100,那么比率将只是实例 vCPU 数量除以内核数除;即 46 / 56 = 0.8。但是,由于实例通常不会消耗其分配的 CPU 数量,因此您可以在决定所需客户机 vCPU 数量时考虑预期百分比来引发 NovaCPUAllocationRatio

因此,如果我们可以预测,实例将只使用每个 vCPU 的 10%(或 0.1),则实例的 vCPU 数量可以表示为 46 / 0.1 = 460。当此值除以内核数(56))时,比率增加到大约 8。

以下 Python 代码提供这个计算:

cores_per_OSD = 1.0
average_guest_util = 0.1 # 10%
nonceph_cores = cores - (cores_per_OSD * osds)
guest_vCPUs = nonceph_cores / average_guest_util
cpu_allocation_ratio = guest_vCPUs / cores
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部