Poor default for API workers in Neutron

Bug #1619383 reported by Brent Eagles on 2016-09-01
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Critical
Brent Eagles

Bug Description

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/

Brent Eagles (beagles) wrote :

Should read "this has the result of setting it to the number of processors"

Changed in tripleo:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Brent Eagles (beagles)
milestone: none → newton-rc1

Fix proposed to branch: master
Review: https://review.openstack.org/364483

Changed in tripleo:
status: Confirmed → In Progress
Brent Eagles (beagles) wrote :

Upping to critical. Some perf testing has illustrated that API performance takes a huge hit.

Changed in tripleo:
importance: High → Critical

Reviewed: https://review.openstack.org/364483
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=959e87238877fa03707ac624429e673f14ca0c2a
Submitter: Jenkins
Branch: master

commit 959e87238877fa03707ac624429e673f14ca0c2a
Author: Brent Eagles <email address hidden>
Date: Thu Sep 1 14:58:59 2016 -0230

    Change NeutronWorkers default to result in previous behavior

    Neutron's behavior changed in Newton with respect to the default value
    of 0 for NeutronWorkers. Instead of effectively treating it as
    "processorcount", it now assumes we mean what we say and doesn't spawn
    any workers, resulting in only a single process for handling API
    requests. This change alters the default value to regain the previous
    behavior.

    This change also extends the worker count to the RPC worker setting -
    which was possibly an oversight in previous releases. The default
    behavior will have no result for most systems.

    Closes-Bug: 1619383

    Change-Id: Id6e3ee544160372c806905e77348150a1a1eec1b

Changed in tripleo:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers