Library for running OpenStack services
Go to file
Roman Podoliaka 321c185f3d wsgi: decrease the default number of greenthreads in pool
It turned out that distribution of WSGI requests between forks is not
even when eventlet is used, which can cause pool timeout issues under
load, while there are idle workers with open DB connections, which
should have served these HTTP requests.

The default number of greenthreads in pool should be decreased to allow
DB oriented services (mostly APIs) distribute load more evenly between
workers: one worker will stop accepting new requests, when there are no
more available greenthreads in the wsgi pool, accept() will block, but
there are other forks accept()'ing on the same FD to handle connections
from the queue in kernel.

Related change to oslo.db:

  I2e9c2a71d8231e0dfbefc6293ad319e1e459beec

Testing was performed using this script:

  https://gist.github.com/zzzeek/c69138fd0d0b3e553a1f

With 100 greenthreads in the pool, 50 DB connections allowed overflow
no pool timeout issues were seen with up to 500 concurrent requests
done by ab, while current default values (1000/10) could not handle
even 100 concurrent requests.

See this ML thread for details:

  http://lists.openstack.org/pipermail/openstack-dev/2015-December/082717.html

Closes-Bug: #1535375

Change-Id: I65b40b9906b75146a0085bbe168f1e6bcae82f21
2016-02-22 20:12:29 +02:00
doc/source Document graceful_shutdown_timeout config option 2015-10-27 14:42:14 -04:00
oslo_service wsgi: decrease the default number of greenthreads in pool 2016-02-22 20:12:29 +02:00
.coveragerc Fix coverage configuration and execution 2015-10-01 19:48:34 +00:00
.gitignore Fix coverage configuration and execution 2015-10-01 19:48:34 +00:00
.gitreview exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
.mailmap exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
.testr.conf exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
babel.cfg exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
bandit.yaml Add Bandit to tox for security static analysis 2015-12-01 16:10:15 +03:00
CONTRIBUTING.rst exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
HACKING.rst exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
LICENSE exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
README.rst Expand README and clean up intro to sphinx docs 2015-09-25 11:44:57 +00:00
requirements.txt Updated from global requirements 2016-02-20 21:59:46 +00:00
setup.cfg Update translation setup 2016-01-29 11:43:28 +01:00
setup.py Updated from global requirements 2015-09-17 12:16:14 +00:00
test-requirements.txt Updated from global requirements 2016-02-04 18:59:10 +00:00
tox.ini Run sslutils and wsgi tests for python3 2015-12-22 13:26:40 +03:00

oslo.service -- Library for running OpenStack services

Latest Version

Downloads

oslo.service provides a framework for defining new long-running services using the patterns established by other OpenStack applications. It also includes utilities long-running applications might need for working with SSL or WSGI, performing periodic operations, interacting with systemd, etc.