Parallelize periodic power sync calls follow up
Fixes quite a few assorted nits. Follows up Change-Id I80297c877d9a87d3bd8fc30d0ed65cd443f200b3 Change-Id: I92faffb4fac349a77e3597f3668c75bbc2c2397d
This commit is contained in:
parent
7448603ab8
commit
821d5fef73
@ -1642,12 +1642,12 @@ class ConductorManager(base_manager.BaseConductorManager):
|
|||||||
for node_info in self.iter_nodes(fields=['id'], filters=filters):
|
for node_info in self.iter_nodes(fields=['id'], filters=filters):
|
||||||
nodes.put(node_info)
|
nodes.put(node_info)
|
||||||
|
|
||||||
number_of_threads = min(CONF.conductor.sync_power_state_workers,
|
number_of_workers = min(CONF.conductor.sync_power_state_workers,
|
||||||
CONF.conductor.periodic_max_workers,
|
CONF.conductor.periodic_max_workers,
|
||||||
nodes.qsize())
|
nodes.qsize())
|
||||||
futures = []
|
futures = []
|
||||||
|
|
||||||
for thread_number in range(max(0, number_of_threads - 1)):
|
for worker_number in range(max(0, number_of_workers - 1)):
|
||||||
try:
|
try:
|
||||||
futures.append(
|
futures.append(
|
||||||
self._spawn_worker(self._sync_power_state_nodes_task,
|
self._spawn_worker(self._sync_power_state_nodes_task,
|
||||||
@ -1656,7 +1656,7 @@ class ConductorManager(base_manager.BaseConductorManager):
|
|||||||
LOG.warning("There are no more conductor workers for "
|
LOG.warning("There are no more conductor workers for "
|
||||||
"power sync task. %(workers)d workers have "
|
"power sync task. %(workers)d workers have "
|
||||||
"been already spawned.",
|
"been already spawned.",
|
||||||
{'workers': thread_number})
|
{'workers': worker_number})
|
||||||
break
|
break
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -78,9 +78,9 @@ opts = [
|
|||||||
'in DB')),
|
'in DB')),
|
||||||
cfg.IntOpt('sync_power_state_workers',
|
cfg.IntOpt('sync_power_state_workers',
|
||||||
default=8, min=1,
|
default=8, min=1,
|
||||||
help=_('The maximum number of workers that can be started '
|
help=_('The maximum number of worker threads that can be '
|
||||||
'simultaneously to sync nodes power state from the '
|
'started simultaneously to sync nodes power states from '
|
||||||
'periodic task.')),
|
'the periodic task.')),
|
||||||
cfg.IntOpt('periodic_max_workers',
|
cfg.IntOpt('periodic_max_workers',
|
||||||
default=8,
|
default=8,
|
||||||
help=_('Maximum number of worker threads that can be started '
|
help=_('Maximum number of worker threads that can be started '
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
---
|
---
|
||||||
features:
|
features:
|
||||||
- |
|
- |
|
||||||
Parallelizes periodic power sync calls by running up to
|
Parallelizes periodic power sync calls by running up to ironic
|
||||||
``sync_power_state_workers`` simultenously. The default is to run
|
configuration ``[conductor]/sync_power_state_workers`` simultaneously.
|
||||||
up to ``8`` workers.
|
The default is to run up to ``8`` workers. This change should let
|
||||||
This change should let larger-scale setups to run power syncs more
|
larger-scale setups running power syncs more frequently and make the whole
|
||||||
frequently and make the whole power sync procedure more resilient to slow
|
power sync procedure more resilient to slow or dead BMCs.
|
||||||
or dead BMCs.
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user