Skip to content

Commit 0564006

Browse files
committed
docs: Add notes about IoOpsWeigher, BuildFailureWeigher
A recent customer call highlighted some misunderstandings about the two weighers in the nova tree. Firstly, the basis for the metrics used by the 'IoOpsWeigher' was not well explained and required some spelunking through the code to understand. Secondly, the 'BuildFailureWeigher' multiplier, configured by '[scheduler] build_failure_weight_multiplier', defaults to a very large value for reasons that are not apparent unless you read the commit logs for that weigher (hint: it's because we wanted to preserve the behavior of the older filter-based approach to handling nodes with build failures). Expand the documentation to fill both gaps. In the process, we also correct some small nits with this doc, mostly centered around whitespace. Change-Id: If2d329b86808bdc70619fbe057dd25a938eb79da Signed-off-by: Stephen Finucane <[email protected]>
1 parent e14eef0 commit 0564006

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

doc/source/admin/scheduling.rst

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,6 @@ Hosts are weighted based on the following config options:
853853
- :oslo.config:option:`filter_scheduler.host_subset_size`
854854
- :oslo.config:option:`filter_scheduler.weight_classes`
855855

856-
857856
``RAMWeigher``
858857
~~~~~~~~~~~~~~
859858

@@ -870,7 +869,6 @@ back to the :oslo.config:option:`filter_scheduler.ram_weight_multiplier`.
870869
If more than one value is found for a host in aggregate metadata, the minimum
871870
value will be used.
872871

873-
874872
``CPUWeigher``
875873
~~~~~~~~~~~~~~
876874

@@ -887,7 +885,6 @@ back to the :oslo.config:option:`filter_scheduler.cpu_weight_multiplier`. If
887885
more than one value is found for a host in aggregate metadata, the minimum
888886
value will be used.
889887

890-
891888
``DiskWeigher``
892889
~~~~~~~~~~~~~~~
893890

@@ -902,7 +899,6 @@ back to the :oslo.config:option:`filter_scheduler.disk_weight_multiplier`. If
902899
more than one value is found for a host in aggregate metadata, the minimum value
903900
will be used.
904901

905-
906902
``MetricsWeigher``
907903
~~~~~~~~~~~~~~~~~~
908904

@@ -929,14 +925,17 @@ metrics weight multiplier. Otherwise, it will fall back to the
929925
one value is found for a host in aggregate metadata, the minimum value will
930926
be used.
931927

932-
933928
``IoOpsWeigher``
934929
~~~~~~~~~~~~~~~~
935930

936-
The weigher can compute the weight based on the compute node
937-
host's workload. The default is to preferably choose light workload compute
938-
hosts. If the multiplier is positive, the weigher prefer choosing heavy
939-
workload compute hosts, the weighing has the opposite effect of the default.
931+
The weigher can compute the weight based on the compute node host's workload.
932+
This is calculated by examining the number of instances in the ``building``
933+
``vm_state`` or in one of the following ``task_state``\ 's:
934+
``resize_migrating``, ``rebuilding``, ``resize_prep``, ``image_snapshot``,
935+
``image_backup``, ``rescuing``, or ``unshelving``.
936+
The default is to preferably choose light workload compute hosts. If the
937+
multiplier is positive, the weigher prefers choosing heavy workload compute
938+
hosts, the weighing has the opposite effect of the default.
940939

941940
Starting with the Stein release, if per-aggregate value with the key
942941
``io_ops_weight_multiplier`` is found, this
@@ -1006,6 +1005,8 @@ the
10061005
If more than one value is found for a host in aggregate metadata, the minimum
10071006
value will be used.
10081007

1008+
.. _build-failure-weigher:
1009+
10091010
``BuildFailureWeigher``
10101011
~~~~~~~~~~~~~~~~~~~~~~~
10111012

@@ -1020,6 +1021,17 @@ build failure weight multiplier. Otherwise, it will fall back to the
10201021
more than one value is found for a host in aggregate metadata, the minimum
10211022
value will be used.
10221023

1024+
.. important::
1025+
1026+
The :oslo.config:option:`filter_scheduler.build_failure_weight_multiplier`
1027+
option defaults to a very high value. This is intended to offset weight
1028+
given by other enabled weighers due to available resources, giving this
1029+
weigher priority. However, not all build failures imply a problem with the
1030+
host itself - it could be user error - but the failure will still be
1031+
counted. If you find hosts are frequently reporting build failures and
1032+
effectively being excluded during scheduling, you may wish to lower the
1033+
value of the multiplier.
1034+
10231035
.. _cross-cell-weigher:
10241036

10251037
``CrossCellWeigher``
@@ -1028,11 +1040,11 @@ value will be used.
10281040
.. versionadded:: 21.0.0 (Ussuri)
10291041

10301042
Weighs hosts based on which cell they are in. "Local" cells are preferred when
1031-
moving an instance. Use configuration option
1032-
:oslo.config:option:`filter_scheduler.cross_cell_move_weight_multiplier` to
1033-
control the weight. If per-aggregate value with the key
1034-
`cross_cell_move_weight_multiplier` is found, this value would be chosen as the
1035-
cross-cell move weight multiplier. Otherwise, it will fall back to the
1043+
moving an instance.
1044+
1045+
If per-aggregate value with the key `cross_cell_move_weight_multiplier` is
1046+
found, this value would be chosen as the cross-cell move weight multiplier.
1047+
Otherwise, it will fall back to the
10361048
:oslo.config:option:`filter_scheduler.cross_cell_move_weight_multiplier`. If
10371049
more than one value is found for a host in aggregate metadata, the minimum
10381050
value will be used.

0 commit comments

Comments
 (0)