diff --git a/playbooks/roles/etherpad/files/apache-connection-tuning b/playbooks/roles/etherpad/files/apache-connection-tuning new file mode 100644 index 0000000000..158adb0f25 --- /dev/null +++ b/playbooks/roles/etherpad/files/apache-connection-tuning @@ -0,0 +1,39 @@ +# 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 128 + StartServers 3 + MinSpareThreads 96 + MaxSpareThreads 192 + ThreadLimit 64 + ThreadsPerChild 32 + MaxClients 4096 + MaxRequestsPerChild 0 + + + ServerLimit 128 + StartServers 3 + MinSpareThreads 96 + MaxSpareThreads 192 + ThreadLimit 64 + ThreadsPerChild 32 + MaxClients 4096 + MaxRequestsPerChild 0 + diff --git a/playbooks/roles/etherpad/tasks/main.yaml b/playbooks/roles/etherpad/tasks/main.yaml index 717c3fd203..42d004c051 100644 --- a/playbooks/roles/etherpad/tasks/main.yaml +++ b/playbooks/roles/etherpad/tasks/main.yaml @@ -52,6 +52,15 @@ - headers - proxy_wstunnel +- name: Copy apache tuning + copy: + src: apache-connection-tuning + dest: /etc/apache2/conf-enabled/connection-tuning.conf + owner: root + group: root + mode: 0644 + notify: etherpad Reload apache2 + - name: Copy apache config template: src: etherpad.vhost.j2