搜索

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

download PDF

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。Compute 服务预期这个值以 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 个内核。如果每个实例使用 100 个接收的 CPU,则比率仅为实例 vCPU 的数量,按内核数除,即 46 / 56 = 0.8。但是,因为实例通常不会每个分配的 CPU 消耗 100 个,因此当确定所需客户机 vCPU 数量时,您可以提高 NovaCPUAllocationRatio

因此,如果预测实例将在其 vCPU 的每 cent (或 0.1)使用 10 个,那么实例的 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.