openstack-ansible-os_swift/templates/proxy-server.conf.j2
Ravi Gummadi bb9e3f5828 Cap the number of worker threads
Users can configure the number of worker threads. However when it's
not specified the calculated number of workers can get too large on
hosts with a large number of CPUs. Capping only swift proxy server
worker threads when the proxy is in a container. Not capping the
remaining swift services' workers because of the performance impact
it may cause because of the capping.

Change-Id: I12d930552558144ab49fecc0b3776747c1f02166
2017-03-06 06:39:01 -05:00

180 lines
5.2 KiB
Django/Jinja

# {{ ansible_managed }}
[DEFAULT]
# Disable stderr logging
use_stderr = False
bind_ip = 0.0.0.0
bind_port = {{ swift_proxy_port }}
workers = {{ swift_proxy_server_workers }}
user = {{ swift_system_user_name }}
log_facility = LOG_LOCAL1
{% set _statsd_host = swift_proxy_vars.statsd_host | default(swift.statsd_host | default(statsd_host | default(False))) %}
{% if _statsd_host | bool %}
log_statsd_host = {{ _statsd_host }}
log_statsd_port = {{ swift_proxy_vars.statsd_port | default(swift.statsd_port | default(statsd_port)) }}
log_statsd_default_sample_rate = {{ swift_proxy_vars.statsd_default_sample_rate | default(swift.statsd_default_sample_rate | default(statsd_default_sample_rate)) }}
log_statsd_sample_rate_factor = {{ swift_proxy_vars.statsd_sample_rate_factor | default(swift.statsd_sample_rate_factor | default(statsd_sample_rate_factor))}}
log_statsd_metric_prefix = {{ swift_proxy_vars.statsd_metric_prefix | default(swift.statsd_metric_prefix | default(inventory_hostname)) }}
{% endif %}
[pipeline:main]
pipeline = {{ swift_middleware_list | join(' ') }}
[filter:copy]
use = egg:swift#copy
[app:proxy-server]
use = egg:swift#proxy
log_facility = LOG_LOCAL1
node_timeout = 60
conn_timeout = 3.5
account_autocreate = true
{% if swift_proxy_vars is defined %}
{% if swift_proxy_vars.read_affinity is defined %}
read_affinity = {{ swift_proxy_vars.read_affinity }}
{% set swift_sorting_method = 'affinity' %}
{% endif %}
{% if swift_proxy_vars.write_affinity is defined %}
write_affinity = {{ swift_proxy_vars.write_affinity }}
{% if swift_proxy_vars.write_affinity_node_count is defined %}
write_affinity_node_count = {{ swift_proxy_vars.write_affinity_node_count }}
{% endif %}
{% endif %}
{% endif %}
sorting_method = {{ swift_sorting_method }}
{% if 'tempauth' in swift_middleware_list %}
[filter:tempauth]
use = egg:swift#tempauth
{% for user in swift_tempauth_users %}
{{ user }}
{% endfor %}
{% endif %}
{% if 'authtoken' in swift_middleware_list %}
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_plugin = {{ swift_keystone_auth_plugin }}
auth_url = {{ keystone_service_adminuri }}
auth_uri = {{ keystone_service_internaluri }}
insecure = {{ keystone_service_adminuri_insecure | bool }}
region_name = {{ keystone_service_region }}
project_domain_id = {{ swift_service_project_domain_id }}
user_domain_id = {{ swift_service_user_domain_id }}
project_name = {{ swift_service_project_name }}
username = {{ swift_service_user_name }}
password = {{ swift_service_password }}
delay_auth_decision = {{ swift_delay_auth_decision }}
include_service_catalog = False
{% if memcached_servers is defined %}
memcached_servers = {{ memcached_servers }}
cache = swift.cache
token_cache_time = 300
revocation_cache_time = 60
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcached_encryption_key }}
{% endif %}
{% endif %}
{% if 'keystoneauth' in swift_middleware_list %}
[filter:keystoneauth]
use = egg:swift#keystoneauth
{% if swift_allow_all_users is defined and swift_allow_all_users == True %}
{% if 'ceilometer' in swift_middleware_list %}
operator_roles = admin, swiftoperator, _member_, {{ swift_reselleradmin_role }}
{% else %}
operator_roles = admin, swiftoperator, _member_
{% endif %}
{% else %}
{% if 'ceilometer' in swift_middleware_list %}
operator_roles = admin, swiftoperator, {{ swift_reselleradmin_role }}
{% else %}
operator_roles = admin, swiftoperator
{% endif %}
{% endif %}
# The reseller admin role has the ability to create and delete accounts
reseller_admin_role = {{ swift_reselleradmin_role }}
{% endif %}
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:cache]
use = egg:swift#memcache
[filter:ratelimit]
use = egg:swift#ratelimit
[filter:domain_remap]
use = egg:swift#domain_remap
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:cname_lookup]
use = egg:swift#cname_lookup
[filter:staticweb]
use = egg:swift#staticweb
[filter:tempurl]
use = egg:swift#tempurl
[filter:formpost]
use = egg:swift#formpost
[filter:name_check]
use = egg:swift#name_check
[filter:list-endpoints]
use = egg:swift#list_endpoints
[filter:proxy-logging]
use = egg:swift#proxy_logging
[filter:bulk]
use = egg:swift#bulk
[filter:container-quotas]
use = egg:swift#container_quotas
[filter:slo]
use = egg:swift#slo
[filter:dlo]
use = egg:swift#dlo
[filter:versioned_writes]
use = egg:swift#versioned_writes
allow_versioned_writes = True
[filter:account-quotas]
use = egg:swift#account_quotas
[filter:gatekeeper]
use = egg:swift#gatekeeper
[filter:container_sync]
use = egg:swift#container_sync
[filter:xprofile]
use = egg:swift#xprofile
{% if 'ceilometer' in swift_middleware_list %}
[filter:ceilometer]
paste.filter_factory = ceilometermiddleware.swift:filter_factory
control_exchange = swift
driver = messagingv2
url = rabbit://{% for host in swift_rabbitmq_telemetry_servers.split(',') %}{{ swift_rabbitmq_telemetry_userid }}:{{ swift_rabbitmq_telemetry_password }}@{{ host }}:{{ swift_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ swift_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %}
topic = notifications
{% if swift_gnocchi_service_project_id is defined %}
ignore_projects = {{ swift_gnocchi_service_project_id }}
{% endif %}
log_level = WARN
{% endif %}