7.4. 计算调度程序权重
每个 Compute 节点都有一个权重,调度程序可以使用它来优先调度实例。在计算调度程序应用过滤器后,它会从剩余的候选 Compute 节点中选择具有最大权重的 Compute 节点。
计算调度程序通过执行以下任务来确定每个 Compute 节点的权重:
- 调度程序将每个权重规范化为 0.0 到 1.0 之间的值。
- 调度程序将规范化权重乘以 weigher multiplier。
计算调度程序通过使用候选 Compute 节点内资源可用性的下半值来计算每种资源类型的权重规范化:
- 资源可用性最低的节点(minval)被分配为 '0'。
- 资源可用性最高的节点(maxval)被分配为 '1'。
minval - maxval 范围内具有资源可用性的节点分配使用以下公式计算的规范化权重:
(node_resource_availability - minval) / (maxval - minval)
如果所有 Compute 节点都有相同的资源可用性,则它们都会规范化为 0。
例如,调度程序计算 10 个 Compute 节点间可用 vCPU 的规范化权重,每个都有不同数量的可用 vCPU,如下所示:
Compute 节点 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
没有 vCPU | 5 | 5 | 10 | 10 | 15 | 20 | 20 | 15 | 10 | 5 |
规范化权重 | 0 | 0 | 0.33 | 0.33 | 0.67 | 1 | 1 | 0.67 | 0.33 | 0 |
计算调度程序使用以下公式来计算 Compute 节点的权重:
(w1_multiplier * norm(w1)) + (w2_multiplier * norm(w2)) + ...
下表描述了可用于权重的配置选项。
可以使用与下表中详述的选项相同的聚合元数据键在主机聚合上设置权重。如果在主机聚合上设置,主机聚合值将具有优先权。
配置选项 | 类型 | 描述 |
---|---|---|
| 字符串 | 使用此参数配置以下哪些属性用于计算每个 Compute 节点的权重:
|
| 浮点 | 使用此参数指定基于可用 RAM 的 eigh 主机的倍数。 设置为正值,以首选具有更多可用 RAM 的主机,这会将实例分散到多个主机。 设置为负值,以首选使用较少可用 RAM 的主机,这会尽可能填充(堆栈)主机,然后再调度到较早使用的主机。 绝对值(无论是正还是负值)控制 RAM weigher 相对于其他 Weighers 的强度量。 Default: 1.0 - 调度程序均匀地将实例分散到所有主机中。 |
| 浮点 | 使用此参数根据可用磁盘空间指定用于 weigh 主机的倍数。 设置为正值,以首选具有更多可用磁盘空间的主机,这会将实例分散到多个主机。 设置为负值,以首选使用较少的可用磁盘空间的主机,这会尽可能填充(stacks)主机,然后再调度到较早使用的主机。 绝对值(无论是正还是负值)控制磁盘我们相对于其他 Weighers 的强度程度。 Default: 1.0 - 调度程序均匀地将实例分散到所有主机中。 |
| 浮点 | 使用此参数根据可用的 vCPU 指定用于 weigh 主机的倍数。 设置为正值,以首选具有更多可用 vCPU 的主机,这会将实例分散到多个主机。 设置为负值,以首选具有较少可用 vCPU 的主机,这将尽可能填充(堆栈)主机,然后再调度到较早使用的主机。 绝对值(无论是正还是负)控制 vCPU weigher 相对于其他 Weighers 的强度。 Default: 1.0 - 调度程序均匀地将实例分散到所有主机中。 |
| 浮点 | 使用此参数指定基于主机负载的 eigh 主机的倍数。 设置为负值,以首选将工作负载分布到更多主机的主机。 设置为正数值,以首选具有更高工作负载的主机,这会将实例调度到已经忙碌的主机上。 绝对值(无论是正还是负)控制 I/O 操作相对于其他 Weighers 的强度。 Default: -1.0 - 调度程序在更多主机间分发工作负载。 |
| 浮点 | 使用此参数指定根据最近的构建失败,用于 weigh 主机的倍数。 设置为正值,以增加主机最近报告的构建故障的意义。然后,选择构建失败的主机不太可能被选择。
设置为 默认: 1000000.0 |
| 浮点 | 使用此参数指定跨移动期间用于 weigh 主机的倍数。此选项决定了在移动实例时放入相同源单元的主机上放置了多少权重。默认情况下,调度程序在迁移实例时优先选择同一源单元中的主机。 设置为正值,以首选实例当前运行的同一单元中的主机。设置为负值,以首选位于实例当前运行的不同单元格中的主机。 默认: 1000000.0 |
| 正浮动点 | 使用此参数指定根据主机上的 PCI 设备数量以及实例请求的 PCI 设备数量,以权衡主机的倍数。如果实例请求 PCI 设备,则 Compute 节点越多的 PCI 设备越高,权重越高。 例如,如果存在三个可用的主机,一个主机只有一个 PCI 设备,一个具有多个 PCI 设备,一个没有 PCI 设备,则计算调度程序会根据实例的需求来优先选择这些主机。如果实例请求一个 PCI 设备,调度程序应优先选择第一个主机,如果实例请求一个 PCI 设备,则第二个主机如果实例请求了 PCI 设备,则第二个主机是第三个主机。 配置这个选项,以防止非 PCI 实例使用 PCI 设备在主机上占用资源。 Default: 1.0 |
| 整数 | 使用此参数指定要选择主机的过滤主机子集的大小。您必须将这个选项设置为至少 1。1 代表选择由权重函数返回的第一个主机。调度程序忽略小于 1 的任何值,而是使用 1。 设置为大于 1 的值,以防止多个调度程序处理选择同一主机的类似请求,从而造成潜在的竞争条件。从最适合请求的 N 主机中随机选择主机,从而降低冲突的可能性。但是,您设置这个值越高,所选主机对于给定请求可能的最佳选择。 默认:1 |
| 正浮动点 | 使用此参数指定用于 weigh 主机进行组软关联性的倍数。 注意 在创建具有此策略的组时,您需要指定 microversion: $ openstack --os-compute-api-version 2.15 server group create --policy soft-affinity <group_name> Default: 1.0 |
| 正浮动点 | 使用此参数指定用于 weigh 主机组 soft-anti-affinity 的倍数。 注意 在创建具有此策略的组时,您需要指定 microversion: $ openstack --os-compute-api-version 2.15 server group create --policy soft-affinity <group_name> Default: 1.0 |
| 浮点 |
使用此参数指定用于权重指标的倍数。默认情况下, 设置为大于 1.0 的数字,以提高指标对总体权重的影响。 设置为 0.0 和 1.0 之间的数字,以减少指标对整体权重的影响。
设置为 0.0 以忽略指标值,并返回 设置为负数,以优先选择具有较低指标的主机以及主机中的堆栈实例。 Default: 1.0 |
|
以逗号分隔的 | 使用此参数指定用于权重的指标,以及用于计算每个指标的权重的比率。有效的指标名称:
示例: |
| 布尔值 |
使用此参数指定如何处理不可用的已配置的
|
| 浮点 |
如果有任何 默认: -10000.0 |