云容器引擎 CCE-NUMA亲和性调度:Pod调度预测
Pod调度预测
当Pod设置了拓扑策略时,Volcano会根据Pod设置的拓扑策略预测匹配的节点列表。调度过程如下:
- 根据Pod设置的Volcano拓扑策略,筛选具有相同策略的节点。Volcano提供的拓扑策略与拓扑管理器相同。
- 在设置了相同策略的节点中,筛选CPU拓扑满足该策略要求的节点进行调度。
Volcano拓扑策略 |
节点调度行为 |
|
---|---|---|
1.筛选具有相同策略的节点 |
2.节点的CPU拓扑满足该策略的要求 |
|
none |
无筛选行为:
|
- |
best-effort |
筛选拓扑策略同样为“best-effort”的节点:
|
尽可能满足策略要求进行调度: 优先调度至单NUMA节点,如果单NUMA节点无法满足CPU申请值,允许调度至多个NUMA节点。 |
restricted |
筛选拓扑策略同样为“restricted”的节点:
|
严格限制的调度策略:
|
single-numa-node |
筛选拓扑策略同样为“single-numa-node”的节点:
|
仅允许调度至单NUMA节点。 |
假设单个节点CPU总量为32U,由2个NUMA节点提供资源,分配如下:
工作节点 |
节点拓扑策略 |
NUMA节点1上的CPU总量 |
NUMA节点2上的CPU总量 |
---|---|---|---|
节点-1 |
best-effort |
16 |
16 |
节点-2 |
restricted |
16 |
16 |
节点-3 |
restricted |
16 |
16 |
节点-4 |
single-numa-node |
16 |
16 |
Pod设置拓扑策略后,调度情况如图1所示。
- 当Pod的CPU申请值为9U时,设置拓扑策略为“best-effort”,Volcano会匹配拓扑策略同样为“best-effort”的节点-1,且该策略允许调度至多个NUMA节点,因此9U的申请值会被分配到2个NUMA节点,该Pod可成功调度至节点-1。
- 当Pod的CPU申请值为9U时,设置拓扑策略为“restricted”,Volcano会匹配拓扑策略同样为“restricted”的节点-2/节点-3,且单NUMA节点CPU总量满足9U的申请值,但单NUMA节点剩余可用的CPU量无法满足,因此该Pod无法调度。
- 当Pod的CPU申请值为17U时,设置拓扑策略为“restricted”,Volcano会匹配拓扑策略同样为“restricted”的节点-2/节点-3,且单NUMA节点CPU总量无法满足17U的申请值,可允许分配到2个NUMA节点,该Pod可成功调度至节点-3。
- 当Pod的CPU申请值为17U时,设置拓扑策略为“single-numa-node”,Volcano会匹配拓扑策略同样为“single-numa-node”的节点,但由于单NUMA节点CPU总量均无法满足17U的申请值,因此该Pod无法调度。