The problem here is the way drivers/base.py::BareDriver inherits from and then adds to drivers/base.py::BaseDriver BaseDriver has a number of static member lists, two of which are appended too in __init__() of BareDriver, because they are static every times a new instance of BareDriver is created its appending an additional entry each time self.core_interfaces.append('network') self.standard_interfaces.append('storage') These lists are then iterated over as part of acquiring a lock each time one is needed for a node see: common/driver_factory.py:_attach_interfaces_to_driver for iface in driver_or_hw_type.all_interfaces: impl = getattr(driver_or_hw_type, iface, None) setattr(bare_driver, iface, impl) Over time this loop takes more time and CPU resources. This can be seen by logging the value of driver_or_hw_type.all_interfaces 2017-03-23 22:33:56.727 28332 INFO ironic.common.driver_factory [req-0751c94d-5894-4237-b8ae-cc1be6b3a064 - - - - -] ['power', 'deploy', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'network', 'console', 'management', 'boot', 'inspect', 'raid', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'storage', 'vendor'] the list just keeps growing and growing The trend can be seen by graphing the time it takes to acquire a lock on a node, attached is a image graphing this trend. Then a patch is applied to conditionaly append entires to the list in question if they don't exist and the conductor is restarted. The trend flattens out.