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
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
ReplyDeleteRegards for this marvellous post, I am glad I detected this web site on yahoo. buy backlinks from marketing1on1
ReplyDeleteNonetheless, some different destinations may likewise be considered to gauge the integrity of code, for example, target code that burns-through less force. In present day times, processor designs are getting more perplexing. Ebay Google SEO expert
ReplyDeleteHey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. Traffic ticket attorney
ReplyDelete