Ceilometer removed cpu_util metric in [1]. Another metric compute.node.cpu.percent need to set compute_monitors option to cpu.virt_driver in the nova.conf, we should remind user about these. [1]: https://review.opendev.org/#/c/580709/ Change-Id: I89306ef7c26fa2927945bd4f3ee88b670511d147
5.9 KiB
Watcher Overload standard deviation algorithm
Synopsis
display name:
Workload stabilization
goal: workload_balancing
watcher.decision_engine.strategy.strategies.workload_stabilization.WorkloadStabilization
Requirements
Metrics
The workload_stabilization strategy requires the following metrics:
metric | service name | plugins | comment |
---|---|---|---|
|
none |
need to set the |
|
|
none none |
cpu_util has been removed since Stein. |
Cluster data model
Default Watcher's Compute cluster data model:
watcher.decision_engine.model.collector.nova.NovaClusterDataModelCollector
Actions
Default Watcher's actions:
action description migration
watcher.applier.actions.migration.Migrate
Planner
Default Watcher's planner:
watcher.decision_engine.planner.weight.WeightPlanner
Configuration
Strategy parameters are:
parameter | type | default Value | description |
---|---|---|---|
|
array |
["cpu_util", "memory.resident"] |
Metrics used as rates of cluster loads. |
|
object |
{"cpu_util": 0.2, "memory.resident": 0.2} |
Dict where key is a metric and value is a trigger value. |
|
object |
{"cpu_util_weight": 1.0, "memory.resident_weight": 1.0} |
These weights used to calculate common standard deviation. Name of weight contains meter name and _weight suffix. |
|
object |
{"cpu_util": "compute.node.cpu.percent", "memory.resident": "hardware.memory.used"} |
Mapping to get hardware statistics using instance metrics. |
|
string |
retry |
Method of host's choice. There are cycle, retry and fullsearch methods. Cycle will iterate hosts in cycle. Retry will get some hosts random (count defined in retry_count option). Fullsearch will return each host from list. |
|
number |
1 |
Count of random returned hosts. |
|
object |
{"instance": 720, "node": 600} |
These periods are used to get statistic aggregation for instance and host metrics. The period is simply a repeating interval of time into which the samples are grouped for aggregation. Watcher uses only the last period of all received ones. |
Efficacy Indicator
watcher.decision_engine.goal.efficacy.specs.ServerConsolidation.get_global_efficacy_indicator
Algorithm
You can find description of overload algorithm and role of standard deviation here: https://specs.openstack.org/openstack/watcher-specs/specs/newton/implemented/sd-strategy.html
How to use it ?
$ openstack optimize audittemplate create \
at1 workload_balancing --strategy workload_stabilization
$ openstack optimize audit create -a at1 \
-p thresholds='{"memory.resident": 0.05}' \
-p metrics='["memory.resident"]'