Bug 1411391 - Swift Proxy Workers defaults to a single worker
Summary: Swift Proxy Workers defaults to a single worker
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: unspecified
Hardware: Unspecified
OS: Unspecified
Target Milestone: Upstream M3
: 11.0 (Ocata)
Assignee: Jiri Stransky
QA Contact: Arik Chernetsky
Depends On:
TreeView+ depends on / blocked
Reported: 2017-01-09 15:39 UTC by Alex Krzos
Modified: 2018-06-22 07:31 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2018-06-22 07:31:48 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Launchpad 1655070 0 None None None 2017-01-09 19:09:46 UTC
OpenStack gerrit 418029 0 None None None 2017-01-09 19:08:59 UTC

Description Alex Krzos 2017-01-09 15:39:57 UTC
Description of problem:
OpenStack Swift Proxy Server Daemon (swift-proxy-server) should be configured with more than one process/worker for performance and scalability.

Version-Release number of selected component (if applicable):
RHOSP10 Newton

How reproducible:
Always with default setup

Steps to Reproduce:
1. Deploy Red Hat OpenStack Platform
2. Review # of Swift proxy-server daemons running

Actual results:
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]

Expected results:
At a minimum, more than a single daemon per the Swift General Service Tuning [1]

Additional info:

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

  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

Comment 1 Red Hat Bugzilla Rules Engine 2017-02-08 20:35:29 UTC
This bugzilla has been removed from the release and needs to be reviewed and Triaged for another Target Release.

Comment 2 Christian Schwede (cschwede) 2017-03-10 14:06:04 UTC
Fix merged upstream, setting this to POST.

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