neutron/neutron
LIU Yulong 0b9f4f275c Dynamically increase l3 router process queue green pool size
There is a race condition between nova-compute boots instance and
l3-agent processes DVR (local) router in compute node. This issue
can be seen when a large number of instances were booted to one
same host, and instances are under different DVR router. So the
l3-agent will concurrently process all these dvr routers in this
host at the same time.
For now we have a green pool for the router ResourceProcessingQueue
with 8 greenlet, but some of these routers can still be waiting, event
worse thing is that there are time-consuming actions during the router
processing procedure. For instance, installing arp entries, iptables
rules, route rules etc.
So when the VM is up, it will try to get meta via the local proxy
hosting by the dvr router. But the router is not ready yet in that
host. And finally those instances will not be able to setup some
config in the guest OS.

This patch adds a new measurement based on the router quantity to
indicate the L3 router process queue green pool size. The pool size
will be limit from 8 (original value) to 32, because we do not want
the L3 agent cost too much host resource on processing router in the
compute node.

Conflicts:
    neutron/tests/functional/agent/l3/test_legacy_router.py


Related-Bug: #1813787
Change-Id: I62393864a103d666d5d9d379073f5fc23ac7d114
(cherry picked from commit 837c9283ab)
2020-05-26 15:30:13 +00:00
..
agent Dynamically increase l3 router process queue green pool size 2020-05-26 15:30:13 +00:00
api Adding LOG statements to debug 1838449 2020-05-08 09:44:13 +02:00
cmd Secure dnsmasq process against external abuse 2019-02-01 09:07:14 +00:00
common Add trunk subports to be one of dvr serviced device owners 2020-04-06 13:28:33 +02:00
conf Add accepted egress direct flow 2020-03-26 08:23:32 +00:00
core_extensions Refactor duplicated implementation of _get_policy_obj 2018-06-20 09:51:02 +08:00
db Adding LOG statements to debug 1838449 2020-05-08 09:44:13 +02:00
debug Fix all pep8 E265 errors 2018-04-30 16:35:52 -04:00
extensions Fix resource schemas and releated `get_sorts` test cases 2020-02-15 12:31:31 +01:00
hacking use sqla functions from neutron-lib 2018-07-25 21:04:20 +00:00
ipam Add bulk IP address assignment to ipam driver 2020-03-26 12:30:50 +00:00
locale Imported Translations from Zanata 2018-11-30 09:16:33 +00:00
notifiers Refactor the L3 agent batch notifier 2020-04-10 16:39:30 +02:00
objects Improve VLAN allocations synchronization 2020-04-23 16:11:09 +00:00
pecan_wsgi Set DB retry for quota_enforcement pecan_wsgi hook 2019-12-09 12:08:47 +00:00
plugins Merge "Improve VLAN allocations synchronization" into stable/rocky 2020-04-30 11:44:25 +00:00
privileged Check the namespace is ready in test_mtu_update tests 2019-09-16 09:30:43 +00:00
quota Set DB retry for quota_enforcement pecan_wsgi hook 2019-12-09 12:08:47 +00:00
scheduler Fetch specific columns rather than full ORM entities 2018-09-27 16:28:37 +00:00
server Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-19 07:59:06 +00:00
services Wait before deleting trunk bridges for DPDK vhu 2020-04-03 21:11:57 +00:00
tests Dynamically increase l3 router process queue green pool size 2020-05-26 15:30:13 +00:00
__init__.py
_i18n.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
auth.py Use oslo.context class method to construct context object 2017-03-23 09:02:46 +00:00
manager.py Avoid loading same service plugin more than once 2019-04-12 08:33:38 +00:00
neutron_plugin_base_v2.py Do not load default service plugins if core plugin is not DB based 2017-11-09 20:34:52 +00:00
opts.py Merge "Remove deprecated cache_url" 2018-01-03 06:35:59 +00:00
policy.py List SG rules which belongs to tenant's SG 2020-01-29 08:04:16 +00:00
service.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-19 07:59:06 +00:00
version.py
worker.py replace WorkerSupportServiceMixin with neutron-lib's WorkerBase 2017-06-14 06:56:48 -06:00
wsgi.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-19 07:59:06 +00:00