neutron/neutron/tests/functional
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 consume neutron-lib resources attr map 2018-03-09 13:37:28 -07:00
cmd Removing deprecated function 'IPWrapper.get_namespaces()' 2018-04-03 19:52:52 +00:00
common Untangle WaitTimeout class from eventlet.TimeoutError 2017-03-15 04:27:00 +00:00
db Add new test decorator skip_if_timeout 2019-02-20 10:54:38 +01:00
pecan_wsgi fix a typo: s/paramater/parameter 2018-06-04 07:35:10 +00:00
plugins use neutron_lib's portbindings api-def 2017-03-31 09:16:22 -06:00
sanity sanity check: Check that ip_nonlocal_bind works with namespaces 2016-11-18 08:36:51 -05:00
scheduler Remove router_ids argument to auto_schedule_routers() 2017-12-04 15:07:29 -05:00
services Always set ovs bridge name in vif:binding-details 2020-01-02 17:28:41 +08:00
tests make net_helpers functions work on OpenSUSE 2017-09-20 09:59:44 -07:00
__init__.py tests: removed 'retargetable' framework 2017-05-02 16:45:49 +00:00
base.py Increase timeouts for OVSDB in functional tests 2019-09-13 10:57:24 +00:00
constants.py TrunkManager for the OVS agent 2016-08-24 02:52:17 -04:00
requirements.txt Don't return null-byte separated string from ExternalProcess.cmdline() 2017-03-08 07:50:51 +00:00
test_server.py Fix W503 pep8 warnings 2018-04-17 14:22:58 +00:00
test_service.py Use SIGUSR1 to notify l3 agent of changing prefix file 2015-11-13 17:53:47 +03:00