Permalink
Browse files

Add an option for WSGI pool size

Neutron currently hardcodes the number of
greenlets used to process requests in a process to 1000.
As detailed in
http://lists.openstack.org/pipermail/openstack-dev/2015-December/082717.html

this can cause requests to wait within one process
for available database connection while other processes
remain available.

By adding a wsgi_default_pool_size option functionally
identical to that of Nova, we can lower the number of
greenlets per process to be more in line with a typical
max database connection pool size.

DocImpact: a previously unused configuration value
           wsgi_default_pool_size is now used to affect
           the number of greenlets used by the server. The
           default number of greenlets also changes from 1000
           to 100.
Change-Id: I94cd2f9262e0f330cf006b40bb3c0071086e5d71
  • Loading branch information...
zzzeek committed Feb 9, 2016
1 parent eb70f85 commit 9d573387f1e33ce85269d3ed9be501717eed4807
Showing with 14 additions and 2 deletions.
  1. +2 −2 neutron/wsgi.py
  2. +12 −0 releasenotes/notes/config-wsgi-pool-size-a4c06753b79fee6d.yaml
View
@@ -113,10 +113,10 @@ def reset():
class Server(object):
"""Server class to manage multiple WSGI sockets and applications."""
def __init__(self, name, num_threads=1000, disable_ssl=False):
def __init__(self, name, num_threads=None, disable_ssl=False):
# Raise the default from 8192 to accommodate large tokens
eventlet.wsgi.MAX_HEADER_LINE = CONF.max_header_line
self.num_threads = num_threads
self.num_threads = num_threads or CONF.wsgi_default_pool_size
self.disable_ssl = disable_ssl
# Pool for a greenthread in which wsgi server will be running
self.pool = eventlet.GreenPool(1)
@@ -0,0 +1,12 @@
---
prelude: >
Support configuration of greenthreads pool for WSGI.
other:
- Operators may want to tune the ``max_overflow`` and
``wsgi_default_pool_size`` configuration options according
to the investigations outlined in this `mailing list post
<http://lists.openstack.org/pipermail/openstack-dev/2015-December/082717.html>`_.
The default value of ``wsgi_default_pool_size`` inherits from
that of oslo.config, which is currently 100. This is
a change in default from the previous Neutron-specific
value of 1000.

0 comments on commit 9d57338

Please sign in to comment.