Improve vm_consolidation logging
We're adding a few info log messages in order to trace the "vm consolidation" strategy more easily. Change-Id: I8ce1a9dd173733f1b801839d3ad0c1269c4306bb
This commit is contained in:
parent
922478fbda
commit
ec90891636
@ -307,6 +307,8 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
node_cpu_util += instance_util['cpu']
|
||||
node_ram_util += instance_util['ram']
|
||||
node_disk_util += instance_util['disk']
|
||||
LOG.debug("instance utilization: %s %s",
|
||||
instance, instance_util)
|
||||
|
||||
return dict(cpu=node_cpu_util, ram=node_ram_util,
|
||||
disk=node_disk_util)
|
||||
@ -388,8 +390,15 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
instance_utilization = self.get_instance_utilization(instance)
|
||||
metrics = ['cpu', 'ram', 'disk']
|
||||
for m in metrics:
|
||||
if (instance_utilization[m] + node_utilization[m] >
|
||||
node_capacity[m] * cc[m]):
|
||||
fits = (instance_utilization[m] + node_utilization[m] <=
|
||||
node_capacity[m] * cc[m])
|
||||
LOG.debug(
|
||||
"Instance fits: %s, metric: %s, instance: %s, "
|
||||
"node: %s, instance utilization: %s, "
|
||||
"node utilization: %s, node capacity: %s, cc: %s",
|
||||
fits, m, instance, node, instance_utilization[m],
|
||||
node_utilization[m], node_capacity[m], cc[m])
|
||||
if not fits:
|
||||
return False
|
||||
return True
|
||||
|
||||
@ -424,6 +433,9 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
for a in actions:
|
||||
self.solution.actions.remove(a)
|
||||
self.number_of_migrations -= 1
|
||||
LOG.info("Optimized migrations: %s. "
|
||||
"Source: %s, destination: %s", actions,
|
||||
src_name, dst_name)
|
||||
src_node = self.compute_model.get_node_by_name(src_name)
|
||||
dst_node = self.compute_model.get_node_by_name(dst_name)
|
||||
instance = self.compute_model.get_instance_by_uuid(
|
||||
@ -460,6 +472,8 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
key=lambda x: self.get_instance_utilization(
|
||||
x)['cpu']
|
||||
):
|
||||
LOG.info("Node %s overloaded, attempting to reduce load.",
|
||||
node)
|
||||
# skip exclude instance when migrating
|
||||
if instance.watcher_exclude:
|
||||
LOG.debug("Instance is excluded by scope, "
|
||||
@ -468,11 +482,19 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
for destination_node in reversed(sorted_nodes):
|
||||
if self.instance_fits(
|
||||
instance, destination_node, cc):
|
||||
LOG.info("Offload: found fitting "
|
||||
"destination (%s) for instance: %s. "
|
||||
"Planning migration.",
|
||||
destination_node, instance.uuid)
|
||||
self.add_migration(instance, node,
|
||||
destination_node)
|
||||
break
|
||||
if not self.is_overloaded(node, cc):
|
||||
LOG.info("Node %s no longer overloaded.", node)
|
||||
break
|
||||
else:
|
||||
LOG.info("Node still overloaded (%s), "
|
||||
"continuing offload phase.", node)
|
||||
|
||||
def consolidation_phase(self, cc):
|
||||
"""Perform consolidation phase.
|
||||
@ -508,6 +530,10 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||
break
|
||||
if self.instance_fits(
|
||||
instance, destination_node, cc):
|
||||
LOG.info("Consolidation: found fitting "
|
||||
"destination (%s) for instance: %s. "
|
||||
"Planning migration.",
|
||||
destination_node, instance.uuid)
|
||||
self.add_migration(instance, node,
|
||||
destination_node)
|
||||
break
|
||||
|
Loading…
Reference in New Issue
Block a user