9.2. NUMA 资源调度策略


在调度高性能工作负载时,二级调度程序可以使用不同的策略来确定所选 worker 节点中的哪些 NUMA 节点将处理工作负载。OpenShift Container Platform 中支持的策略包括 LeastAllocatedmostAllocatedBalancedAllocation。了解这些策略有助于优化工作负载放置,以提高性能和资源利用率。

当在 NUMA 感知集群中调度高性能工作负载时,会执行以下步骤:

  1. 调度程序首先根据集群范围的标准选择合适的 worker 节点。例如污点、标签或资源可用性。
  2. 选择了 worker 节点后,调度程序会评估其 NUMA 节点,并应用评分策略来确定哪个 NUMA 节点将处理工作负载。
  3. 调度工作负载后,所选 NUMA 节点的资源会更新,以反映分配。

应用的默认策略是 LeastAllocated 策略。这会为 NUMA 节点分配具有最少使用的 NUMA 节点最多可用资源的工作负载。此策略的目标是将工作负载分散到 NUMA 节点之间,以减少争用并避免热点。

下表总结了不同的策略及其结果:

Scoring 策略概述

表 9.1. Scoring 策略概述
策略描述结果

LeastAllocated

优先选择具有最多可用资源的 NUMA 节点。

分散工作负载,以减少竞争,并确保工作空间用于高优先级任务。

MostAllocated

优先选择具有最少可用资源的 NUMA 节点。

在更少的 NUMA 节点上整合工作负载,从而释放其他工作负载,从而获得能源效率。

BalancedAllocation

优先选择 CPU 和内存使用情况均衡的 NUMA 节点。

确保即使资源利用率,防止使用模式。

LeastAllocated 策略示例

LeastAllocated 是默认策略。此策略将工作负载分配给具有最多可用资源的 NUMA 节点,从而最大程度减少资源争用并将工作负载分散到 NUMA 节点上。这可减少热点并确保足够头处理高优先级任务。假设 worker 节点有两个 NUMA 节点,工作负载需要 4 个 vCPU 和 8 GB 内存:

表 9.2. 初始 NUMA 节点状态示例
NUMA 节点CPU 总数使用的 CPU内存总量(GB)已用内存(GB)可用资源

NUMA 1

16

12

64

56

4 个 CPU,8 GB 内存

NUMA 2

16

6

64

24

10 个 CPU,40 GB 内存

由于 NUMA 2 与 NUMA 1 相比具有更多可用资源,因此工作负载将分配给 NUMA 2。

MostAllocated 策略示例

MostAllocated 策略通过将工作负载分配给具有最少可用资源的 NUMA 节点来整合工作负载,这是最常用的 NUMA 节点。这种方法有助于释放其他 NUMA 节点,以实现能源效率或关键工作负载,需要完全隔离。本例使用 LeastAllocated 部分中列出的 "Example initial NUMA nodes state" 值。

工作负载需要 4 个 vCPU 和 8 GB 内存。与 NUMA 2 相比,NUMA 1 的可用资源较少,因此调度程序会将工作负载分配给 NUMA 1,在保持 NUMA 2 空闲或最小加载时进一步利用其资源。

BalancedAllocation 策略示例

BalancedAllocation 策略将工作负载分配给 NUMA 节点,并在 CPU 和内存之间平衡资源利用率。目标是防止不平衡使用量,如 CPU 利用率低下内存。假设 worker 节点具有以下 NUMA 节点状态:

表 9.3. BalancedAllocation的 NUMA 节点初始状态示例
NUMA 节点CPU 用量内存用量BalancedAllocation score

NUMA 1

60%

55%

高(更均衡)

NUMA 2

80%

20%

低(无均衡)

与 NUMA 2 相比,NUMA 1 的 CPU 和内存使用率更为平衡,因此,BalancedAllocation 策略被分配为 NUMA 1。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.