Merge "Complete schema of workload_stabilization strategy"
This commit is contained in:
@@ -23,6 +23,8 @@ This is workload stabilization strategy based on standard deviation
|
|||||||
algorithm. The goal is to determine if there is an overload in a cluster
|
algorithm. The goal is to determine if there is an overload in a cluster
|
||||||
and respond to it by migrating VMs to stabilize the cluster.
|
and respond to it by migrating VMs to stabilize the cluster.
|
||||||
|
|
||||||
|
This strategy has been tested in a small (32 nodes) cluster.
|
||||||
|
|
||||||
It assumes that live migrations are possible in your cluster.
|
It assumes that live migrations are possible in your cluster.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -104,19 +106,47 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
|
|||||||
"metrics": {
|
"metrics": {
|
||||||
"description": "Metrics used as rates of cluster loads.",
|
"description": "Metrics used as rates of cluster loads.",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"default": ["cpu_util", "memory.resident"]
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["cpu_util", "memory.resident"]
|
||||||
|
},
|
||||||
|
"default": ["cpu_util"]
|
||||||
},
|
},
|
||||||
"thresholds": {
|
"thresholds": {
|
||||||
"description": "Dict where key is a metric and value "
|
"description": "Dict where key is a metric and value "
|
||||||
"is a trigger value.",
|
"is a trigger value.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"default": {"cpu_util": 0.2, "memory.resident": 0.2}
|
"properties": {
|
||||||
|
"cpu_util": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 1
|
||||||
|
},
|
||||||
|
"memory.resident": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"default": {"cpu_util": 0.1, "memory.resident": 0.1}
|
||||||
},
|
},
|
||||||
"weights": {
|
"weights": {
|
||||||
"description": "These weights used to calculate "
|
"description": "These weights used to calculate "
|
||||||
"common standard deviation. Name of weight"
|
"common standard deviation. Name of weight"
|
||||||
" contains meter name and _weight suffix.",
|
" contains meter name and _weight suffix.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"cpu_util_weight": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 1
|
||||||
|
},
|
||||||
|
"memory.resident_weight": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
"default": {"cpu_util_weight": 1.0,
|
"default": {"cpu_util_weight": 1.0,
|
||||||
"memory.resident_weight": 1.0}
|
"memory.resident_weight": 1.0}
|
||||||
},
|
},
|
||||||
@@ -141,6 +171,7 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
|
|||||||
"retry_count": {
|
"retry_count": {
|
||||||
"description": "Count of random returned hosts",
|
"description": "Count of random returned hosts",
|
||||||
"type": "number",
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
"default": 1
|
"default": 1
|
||||||
},
|
},
|
||||||
"periods": {
|
"periods": {
|
||||||
@@ -152,12 +183,23 @@ class WorkloadStabilization(base.WorkloadStabilizationBaseStrategy):
|
|||||||
"uses only the last period of all received"
|
"uses only the last period of all received"
|
||||||
" ones.",
|
" ones.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"instance": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"node": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
},
|
||||||
"default": {"instance": 720, "node": 600}
|
"default": {"instance": 720, "node": 600}
|
||||||
},
|
},
|
||||||
"granularity": {
|
"granularity": {
|
||||||
"description": "The time between two measures in an "
|
"description": "The time between two measures in an "
|
||||||
"aggregated timeseries of a metric.",
|
"aggregated timeseries of a metric.",
|
||||||
"type": "number",
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
"default": 300
|
"default": 300
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user