diff --git a/files/apache-connection-tuning b/files/apache-connection-tuning new file mode 100644 index 0000000..f3a2400 --- /dev/null +++ b/files/apache-connection-tuning @@ -0,0 +1,29 @@ +# 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 +# MaxClients: maximum number of simultaneous client connections +# MaxRequestsPerChild: maximum number of requests a server process serves +# +# Etherpad Lite clients create a lot of connections. To be able to support +# Several hundred concurrent users we need to make sure that we allow a few +# thousand concurrent connections. This should be ok as typical etherpad use +# involves a couple writers then a bunch of lurkers. The cost of lurkers +# is basically the TCP connection as they don't create DB writes and so on. +# In addition to allowing for connection growth, keep a healthy number of +# spare threads around to better handle thundering herds of users (eg at the +# start of summit sessions). + + ServerLimit 64 + StartServers 3 + MinSpareThreads 96 + MaxSpareThreads 192 + ThreadLimit 64 + ThreadsPerChild 32 + MaxClients 2048 + MaxRequestsPerChild 0 + diff --git a/manifests/apache.pp b/manifests/apache.pp index d5b2adb..93287b0 100644 --- a/manifests/apache.pp +++ b/manifests/apache.pp @@ -14,6 +14,7 @@ class etherpad_lite::apache ( ensure => present, } + include apache apache::vhost { $vhost_name: port => 443, docroot => 'MEANINGLESS ARGUMENT', @@ -30,6 +31,14 @@ class etherpad_lite::apache ( a2mod { 'proxy_http': ensure => present, } + file { '/etc/apache2/conf.d/connection-tuning': + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + source => 'puppet:///modules/etherpad_lite/apache-connection-tuning', + notify => Service['httpd'], + } file { '/etc/ssl/certs': ensure => directory,