Update resources only for specific node during deletion.
At the moment during Nova instance termination resources are updated for all Ironic nodes. As result with high number of nodes, removing N instances initiates N x M requests, where M is the total number of nodes. This commit allows to update resources per specific node on termination. Depends-On: Iffad4a6ab1aaa5fea591c19f6d330dc861c5675d Change-Id: Ib54741c8564e18f23c4f50bed190dfc66db7ba76 Closes-Bug: #1552446
This commit is contained in:
parent
982c9a97ab
commit
16d8819891
@ -81,13 +81,15 @@ class ClusteredComputeManager(manager.ComputeManager):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@lockutils.synchronized(CCM_SEMAPHORE, 'ironic-')
|
@lockutils.synchronized(CCM_SEMAPHORE, 'ironic-')
|
||||||
def _update_resources(self):
|
def _update_resources(self, node_uuid):
|
||||||
"""Update our resources
|
"""Update the specified node resource
|
||||||
|
|
||||||
Updates the resources while protecting against a race on
|
Updates the resources for instance while protecting against a race on
|
||||||
self._resource_tracker_dict.
|
self._resource_tracker_dict.
|
||||||
|
:param node_uuid: UUID of the Ironic node to update resources for.
|
||||||
"""
|
"""
|
||||||
self.update_available_resource(nova.context.get_admin_context())
|
self.update_available_resource_for_node(
|
||||||
|
nova.context.get_admin_context(), node_uuid)
|
||||||
|
|
||||||
def terminate_instance(self, context, instance, bdms, reservations):
|
def terminate_instance(self, context, instance, bdms, reservations):
|
||||||
"""Terminate an instance on a node.
|
"""Terminate an instance on a node.
|
||||||
@ -100,4 +102,4 @@ class ClusteredComputeManager(manager.ComputeManager):
|
|||||||
instance,
|
instance,
|
||||||
bdms,
|
bdms,
|
||||||
reservations)
|
reservations)
|
||||||
self._update_resources()
|
self._update_resources(instance.node)
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- Fixed performance issue for 'ironic.nova.compute.ClusteredComputeManager'
|
||||||
|
when during Nova instance termination resources were updated for all
|
||||||
|
Nova hypervisors.
|
Loading…
Reference in New Issue
Block a user