Bug 1372807 - Poor default for API workers in Neutron
Summary: Poor default for API workers in Neutron
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 10.0 (Newton)
Hardware: Unspecified
OS: Unspecified
Target Milestone: beta
: 10.0 (Newton)
Assignee: Brent Eagles
QA Contact: Alexander Stafeyev
Depends On:
TreeView+ depends on / blocked
Reported: 2016-09-02 18:27 UTC by Brent Eagles
Modified: 2016-12-14 15:56 UTC (History)
5 users (show)

Fixed In Version: openstack-tripleo-heat-templates-5.0.0-0.20160907212643.90c852e.1.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2016-12-14 15:56:30 UTC

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2016:2948 normal SHIPPED_LIVE Red Hat OpenStack Platform 10 enhancement update 2016-12-14 19:55:27 UTC
OpenStack gerrit 364483 None None None 2016-09-02 18:28:48 UTC
Launchpad 1619383 None None None 2016-09-02 18:28:15 UTC

Description Brent Eagles 2016-09-02 18:27:05 UTC
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:


Comment 2 Nir Yechiel 2016-09-08 14:30:24 UTC
Upstream patch is merged.

Comment 4 Alexander Stafeyev 2016-09-26 12:33:17 UTC

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 

Comment 5 Alexander Stafeyev 2016-09-26 12:35:23 UTC
vi /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-api.yaml

    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.

Comment 8 errata-xmlrpc 2016-12-14 15:56:30 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.