云容器引擎 CCE-NUMA亲和性调度:调度优先级
调度优先级
不管是什么拓扑策略,都是希望把Pod调度到当时最优的节点上,这里通过给每一个节点进行打分的机制来排序筛选最优节点。
原则:尽可能把Pod调度到需要跨NUMA节点最少的工作节点上。
打分公式如下:
score = weight * (100 - 100 * numaNodeNum / maxNumaNodeNum)
参数说明:
- weight:NUMA Aware Plugin的权重。
- numaNodeNum:表示工作节点上运行该Pod需要NUMA节点的个数。
- maxNumaNodeNum:表示所有工作节点中该Pod的最大NUMA节点个数。
例如,假设有三个节点满足Pod的CPU拓扑策略,且NUMA Aware Plugin的权重设为10:
- Node A:由1个NUMA节点提供Pod所需的CPU资源,即numaNodeNum=1
- Node B:由2个NUMA节点提供Pod所需的CPU资源,即numaNodeNum=2
- Node C:由4个NUMA节点提供Pod所需的CPU资源,即numaNodeNum=4
则根据以上公式,maxNumaNodeNum=4
- score(Node A) = 10 * (100 - 100 * 1 / 4) = 750
- score(Node B) = 10 * (100 - 100 * 2 / 4) = 500
- score(Node C) = 10 * (100 - 100 * 4 / 4) = 0
因此最优节点为Node A。