By default, Apache web server is configured to support 160 requests per second. As your website traffic increases, Apache will start dropping additional requests and this will spoil customer experience. Here’s how to increase Apache requests per second.
How Many Requests Can Apache Handle Per Second
By default, Apache Request limit is 160 requests per second, that is, Apache can handle up to 160 requests per second, without any modification.
How To Increase Apache Requests Per Second
Here are the steps to increase Apache requests per second.
1. Install MPM module
We need to install MPM Apache module to be able to increase Apache requests per second. You can use mpm_worker or mpm_event module for this, instead of mpm_prefork module which consumes a lot of memory.
You can easily install MPM module in Apache with following command
Comment the line LoadModule mpm_prefork_module modules/mod_mpm_prefork.so by adding # in front of it
Uncomment the line LoadModule mpm_worker_module modules/mod_mpm_worker.so by removing # in front of it.
a2enmod to disable mpm_prefork and enable mpm_worker
$ a2dismod mpm_prefork $ a2enmod mpm_worker
Bonus Read : How to Install mod_wsgi in Apache on Ubuntu
2. Increase Max Connections in Apache
Open MPM configuration file:
$ sudo vi /etc/httpd/conf.modules.d/00-mpm.conf
$ sudo vi /etc/apache2/mods-available/mpm_worker.conf
Bonus Read : How to Increase Max Connections in Apache
You will see the following lines
StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0
You can change them to the following configuration to increase max requests per second. The following configuration supports up to 8000 concurrent users
<IfModule mpm_worker_module> ServerLimit 250 StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxRequestWorkers 8000 MaxConnectionsPerChild 10000 </IfModule>
You can also add the above lines to Apache web server configuration file, or Virtual host configuration file.
Let’s quickly look at the parameters
- Serverlimit – Maximum number of Apache processes
- StartServers – Number of processes to start when you start running Apache
- MinSpareThreads/MaxSpareThreads – Number of threads to keep idle without being killed
- ThreadsPerChild – Number of threads per process
- MaxRequestWorkers – Number of concurrent connections to be supported. This is the main directive that you need to change to increase max connections in Apache
- MaxConnectionsPerChild – Number of connections to be handled by each child before it is killed
Bonus Read : How to Increase Max URL Length in Apache
3. Restart Apache Server
Restart Apache web server to Apply changes.
$ sudo service apache2 restart
$ sudo service httpd restart
Hopefully, this article will help you increase Apache requests per second.