diff --git a/neutron/agent/l3/agent.py b/neutron/agent/l3/agent.py index 0091679a3bf..415a36140fe 100644 --- a/neutron/agent/l3/agent.py +++ b/neutron/agent/l3/agent.py @@ -268,7 +268,8 @@ class L3NATAgent(ha.AgentMixin, self.metadata_driver) # L3 agent router processing green pool - self._pool = eventlet.GreenPool(size=ROUTER_PROCESS_GREENLET_MIN) + self._pool_size = ROUTER_PROCESS_GREENLET_MIN + self._pool = eventlet.GreenPool(size=self._pool_size) self._queue = queue.ResourceProcessingQueue() super(L3NATAgent, self).__init__(host=self.conf.host) @@ -420,12 +421,15 @@ class L3NATAgent(ha.AgentMixin, @lockutils.synchronized('resize_greenpool') def _resize_process_pool(self): - self._pool_size = max([ROUTER_PROCESS_GREENLET_MIN, - min([ROUTER_PROCESS_GREENLET_MAX, - len(self.router_info)])]) + pool_size = max([ROUTER_PROCESS_GREENLET_MIN, + min([ROUTER_PROCESS_GREENLET_MAX, + len(self.router_info)])]) + if pool_size == self._pool_size: + return LOG.info("Resizing router processing queue green pool size to: %d", - self._pool_size) - self._pool.resize(self._pool_size) + pool_size) + self._pool.resize(pool_size) + self._pool_size = pool_size def _router_added(self, router_id, router): ri = self._create_router(router_id, router)