Copied from u/s bug The default value of 0 for the NeutronWorkers results in different behavior in newton than it did in mitaka. In mitaka, neutron checked the api_worker count like so: workers = cfg.CONF.api_workers if not workers: workers = processutils.get_worker_count() Since we default to 0, this has the result of setting it to the number of threads. It is now: def _get_api_workers(): workers = cfg.CONF.api_workers if workers is None: workers = processutils.get_worker_count() return workers Resulting in the value actually being treated as 0. This has a significant impact on performance. This was changed here: https://review.openstack.org/#/c/348801/
Upstream patch is merged.
def _get_api_workers(): workers = cfg.CONF.api_workers if workers is None: workers = processutils.get_worker_count() return workers rpm -qa | grep openstack-tripleo-heat openstack-tripleo-heat-templates-5.0.0-0.20160907212643.90c852e.2.el7ost.noarch
vi /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-api.yaml . . . NeutronWorkers: default: '' description: | Sets the number of API and RPC workers for the Neutron service. The default value results in the configuration being left unset and a system-dependent default will be chosen (usually the number of processors). Please note that this can result in a large number of processes and memory consumption on systems with a large core count. On such systems it is recommended that a non-default value be selected that matches the load requirements.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-2948.html