Everyone handle high traffic loads on Apache server. During down-time they forget to check server memory. Apache not used lot of memory still server not responding. All time we restart Apache service and all things will start working good.
I also faced same issue numerous time and all-time used same solution : Restart Apache.
After lots of research and reading found one solution. In this blog you see step-by-step guide to apache2 performance settings.
Ubuntu 16.04
Apache2 version using mpm_event
PHP FPM (5.6,7.1)
Open this and ps_mem.py file upload on you server :
https://github.com/raj412/ps_mem
chmod a+x ps_mem.py
sudo python ps_mem.py
I’ll reserve nearly 15% of memory for all other processes.
Last, Calculate php-fpm max-children
Detailed Setup
ServerLimit (Total RAM - Memory used for Linux, DB, etc.) / process size
In the /etc/php/7.1/fpm/pool.d/www.conf change the following settings:
pm.start_servers (cpu cores * 4)
System environment:
Intel(R) Xeon(R) CPU 3.10GHz, 4 cores | 8GB RAMUbuntu 16.04
Apache2 version using mpm_event
PHP FPM (5.6,7.1)
First, Calculate process size :
Download : python script file “ps_mem.py” from GithubOpen this and ps_mem.py file upload on you server :
https://github.com/raj412/ps_mem
chmod a+x ps_mem.py
sudo python ps_mem.py
Output like this:
See here : 12 Apache processes, consuming a total of 35.7MiB, so each Apache process is using roughly 3MiB of RAM. The 42 php-fpm process use 2GB will use so each php-fpm using roughly 50MiB of RAM.
Next, Calculate Apache MaxRequestWorkers:
I’ll reserve nearly 15% of memory for all other processes.
Round up Apache process size to 3MiB.
MaxRequestWorkers = (Total RAM - Memory used for Linux, DB, etc.) / process size
MaxRequestWorkers = (8192MB - 1400MB) / 3MB = 2264
Last, Calculate php-fpm max-children
Round up php process size to 50MiB.
maxclients = (Total RAM - Memory used for Linux, DB, etc.) / process size
maxclients = (8192MB - 1400MB) / 50MB = 135.84
Detailed Setup
In the /etc/apache2/mods-enabled/mpm-event.conf
<IfModule mpm_*_module>
ServerLimit (Total RAM - Memory used for Linux, DB, etc.) / process size
StartServers (Number of Cores)
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers (Total RAM - Memory used for Linux, DB, etc.)/ process size
MaxConnectionsPerChild 1000
</IfModule>
Default settings did not contain the “ServerLimit”, so add it there.
In the /etc/php/7.1/fpm/pool.d/www.conf change the following settings:
pm = dynamic
pm.max_children (total RAM - (DB etc) / process size)
pm.start_servers (cpu cores * 4)
pm.min_spare_servers (cpu cores * 2)
pm.max_spare_servers (cpu cores * 4)
pm.max_requests 1000
Final settings:
8GB RAM and 4 CPUs à 3.7GHz. My average Apache process has 3MB, an average PHP process takes 50MB.
/etc/apache2/mods-available/mpm_event.conf
<IfModule mpm_event_module>
ServerLimit 2264
StartServers 4
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 2264
MaxConnectionsPerChild 1000
</IfModule>
/etc/php/7.1/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 136
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 1000
Save your settings and restart your apache and php-fpm processes.
sudo service apache2 restart
sudo service php7.1-fpm restart
sudo service php7.1-fpm restart
How to control high traffic load on Apache servers : optimization performance of APACHE2 & PHP-FPM
Reviewed by Raj
on
December 19, 2018
Rating:

This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteWithout fail, your writing style is top professional; even your website also looks amazing thank you for posting. Traffic secrets
ReplyDeleteIt will go far and is genuinely direct. A little information will likewise assist you with deciding whether the SEO proficient you are talking with understands what he/she is discussing. SEO no cure no pay
ReplyDeleteIn any case, to achieve this, web designers use SEO custom administrations, which have enduring SEO Google rank. seo consultant birmingham
ReplyDelete