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