Swift Proxy Server Workers Defaults to a single process

Bug #1655070 reported by Alex Krzos
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Medium
Christian Schwede

Bug Description

OpenStack Swift Proxy Server Daemon (swift-proxy-server) should be configured with more than one process/worker for performance and scalability. This was found on Newton bits.

The configured default is a single worker despite the puppet-swift installer (For Newton) showing it should configure more than a single worker (processor count) [0] We should at a minimum, configure more than a single daemon per the Swift General Service Tuning document [1]

You can work around this by passing an additional yaml template into the openstack deploy command to expand the number of workers:

parameter_defaults:
  SwiftWorkers: 24

The actual General Service Tuning recommends 2 x physical cpu core count though it mentions further experiments might be necessary if the server shares other services running on it. (Such as our controllers)

Reviewing the configuration for the swift-proxy-server shows it is configured for a single worker by default by being tuned to:
workers = 0

Thus it suggests something is overriding the configuration by the puppet-swift installer.

In actually testing for scalability of Gnocchi processing metrics on instances with a swift storage backend, it has shown that a single swift-proxy worker will peg a single cpu core at 100 instances ( Technically three workers each pegging a cpu core across 3 controllers - ha deployment)

[0] https://github.com/openstack/puppet-swift/blob/stable/newton/manifests/proxy.pp#L28
[1] http://docs.openstack.org/developer/swift/deployment_guide.html#general-service-tuning

Changed in tripleo:
assignee: nobody → Christian Schwede (cschwede)
Changed in tripleo:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (master)

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

Changed in tripleo:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.openstack.org/418029
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=892827c639d7b72ff2020e5f3fa5bc6db6a608df
Submitter: Jenkins
Branch: master

commit 892827c639d7b72ff2020e5f3fa5bc6db6a608df
Author: Christian Schwede <email address hidden>
Date: Mon Jan 9 19:04:39 2017 +0000

    Set number of Swift proxy server workers to auto

    Setting the default Swift proxy workers to 0 actually results in a
    single Swift proxy worker, no matter how many CPU cores are available.
    This is not the default Swift setting and is most likely not sufficient.

    Setting this to auto uses the default in Swift, which equals to the
    number of CPU cores.

    Closes-Bug: 1655070
    Change-Id: Ic321b6111f8697ba3cc1554611fee44c2e540759

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 7.0.0.0b1

This issue was fixed in the openstack/tripleo-heat-templates 7.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.