Tweak mpm_worker settings

This patch allows puppet to handle configuration of the mpm_worker
apache mod. The config file added here is copied from an Ubuntu Trusty
apache package with the value of MaxRequestWorkers changed from 150 to
400. I reason that this is a reasonable number based on the
MaxRequestWorkers documentation claiming the default is 400 for
mpm_worker[1]:

   For threaded and hybrid servers (e.g. event or worker)
   MaxRequestWorkers restricts the total number of threads that will be
   available to serve clients. For hybrid MPMs the default value is 16
   (ServerLimit) multiplied by the value of 25 (ThreadsPerChild).
   Therefore, to increase MaxRequestWorkers to a value that requires
   more than 16 processes, you must also raise ServerLimit.

If 400 is too few, we can increase it but we must also increase
ServerLimit, which requires not just an apache restart but a full stop
and start[2]:

  Any attempts to change this directive during a restart will be ignored

[1] https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
[2] https://httpd.apache.org/docs/2.4/mod/mpm_common.html#serverlimit

Change-Id: Iab0012e02506f5b7212fe273cfe673f95279d440
This commit is contained in:
Colleen Murphy 2017-03-15 15:39:35 +01:00
parent 877de17207
commit b251f1393f
2 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# Managed by puppet
# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
# graceful restart. ThreadLimit can only be changed by stopping
# and starting Apache.
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of threads
# MaxConnectionsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

View File

@ -91,6 +91,12 @@ class openstack_project::files (
httpd::mod { 'mpm_event': ensure => 'absent' }
httpd::mod { 'mpm_worker': ensure => 'present' }
file { '/etc/apache2/mods-available/mpm_worker.conf':
ensure => file,
source => 'puppet:///modules/openstack_project/files/mpm_worker.conf',
notify => Service['httpd'],
}
###########################################################
# docs.openstack.org