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
This commit is contained in:
parent
eb70f85d3c
commit
9d573387f1
@ -113,10 +113,10 @@ class WorkerService(worker.NeutronWorker):
|
|||||||
class Server(object):
|
class Server(object):
|
||||||
"""Server class to manage multiple WSGI sockets and applications."""
|
"""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
|
# Raise the default from 8192 to accommodate large tokens
|
||||||
eventlet.wsgi.MAX_HEADER_LINE = CONF.max_header_line
|
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
|
self.disable_ssl = disable_ssl
|
||||||
# Pool for a greenthread in which wsgi server will be running
|
# Pool for a greenthread in which wsgi server will be running
|
||||||
self.pool = eventlet.GreenPool(1)
|
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.
|
Loading…
Reference in New Issue
Block a user