puppet-ethercalc/files/apache-connection-tuning
Clark Boylan 521672bc35 Convert from etherpad to ethercalc
This begins the conversion process. We keep the bulk of the nodejs and
apache configuration. Remove mysql and replace with redis and so on.

This is not a complete conversion, future work should include
authenticated redis configuration and systemd support. However, this
should be able to get the service running with a basic set of
features and functionality.

Change-Id: Id10247211d9643e81bb1b6e8fb67377ba6de873a
2017-01-20 12:44:41 -08:00

40 lines
1.7 KiB
Plaintext

# 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
#
# Ethercalc 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 ethercalc 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).
<IfModule mpm_worker_module>
ServerLimit 128
StartServers 3
MinSpareThreads 96
MaxSpareThreads 192
ThreadLimit 64
ThreadsPerChild 32
MaxClients 4096
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
ServerLimit 128
StartServers 3
MinSpareThreads 96
MaxSpareThreads 192
ThreadLimit 64
ThreadsPerChild 32
MaxClients 4096
MaxRequestsPerChild 0
</IfModule>