Apache Web Server Tuning
Change default Apache prefork to event module.
For Ubuntu
https://www.interserver.net/tips/kb/apache-php-fpm-ubuntu-18-04/
a2dismod mpm_prefork a2dismod mpm_worker a2enmod mpm_event systemctl restart apache2
With PHP
aptitude install php-fpm libapache2-mod-fcgid a2enmod proxy a2enmod proxy_fcgi a2dismod php7.4 a2enconf php7.4-fpm a2dismod mpm_prefork a2dismod mpm_worker a2enmod mpm_event systemctl restart apache2
Enable to Event Module
- Edit /etc/httpd/conf.modules.d/00-mpm.conf
- Comment Line: LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
- Uncomment Line: LoadModule mpm_event_module modules/mod_mpm_event.so
Include Configuration File for MPM Event Module
- In /etc/httpd/conf/httpd.conf
- Add Line: IncludeOptional conf.d/mpm_event_module.conf
- (Add this line below other IncludeOptional lines)
Create the MPM Event Module Config File
Create /etc/httpd/conf.d/mpm_event_module.conf with below lines
# event MPM
# ServerLimit: Default 16.
# 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
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of worker threads
# MaxConnectionsPerChild: maximum number of connections a server process serves
# before terminating
# ThreadLimit: Sets the upper limit on the configurable number of threads per child process. ThreadsPerChild can be modified during a restart up to the value of this directive.
<IfModule mpm_event_module>
ServerLimit 16
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 8000
</IfModule>
For 8,000 concurrent connections use this configuration.
<IfModule mpm_event_module>
ServerLimit 250
StartServers 10
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 32
MaxRequestWorkers 8000
MaxConnectionsPerChild 10000
</IfModule>
Ref: https://oxpedia.org/wiki/index.php?title=Tune_apache2_for_more_concurrent_connections