I've got a quite busy server: PHP (Wordpress) using W3TotalCache APC, Varnish for Apache and Cloudflare to handle all traffic. Ubuntu 14.04.4 LTS
Only one website with an average about 60k hits/day.
I get this message every now and then, few times a day. Has nothing to do with temporarily traffic spikes, we compared times with Google Analytics.
Thu Apr 28 14:14:42.938075 2016] [mpm_prefork:error] [pid 19137] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting [Thu Apr 28 15:43:25.594147 2016] [core:notice] [pid 19137] AH00051: child pid 19866 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594313 2016] [core:notice] [pid 19137] AH00051: child pid 20386 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594407 2016] [core:notice] [pid 19137] AH00051: child pid 19143 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594498 2016] [core:notice] [pid 19137] AH00051: child pid 19144 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594572 2016] [core:notice] [pid 19137] AH00051: child pid 20597 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594642 2016] [core:notice] [pid 19137] AH00051: child pid 20395 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594704 2016] [core:notice] [pid 19137] AH00051: child pid 20424 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594785 2016] [core:notice] [pid 19137] AH00051: child pid 20598 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594870 2016] [core:notice] [pid 19137] AH00051: child pid 19861 exit signal Segmentation fault (11), possible coredump in /etc/apache2 [Thu Apr 28 15:43:25.594957 2016] [core:notice] [pid 19137] AH00051: child pid 19782 exit signal Segmentation fault (11), possible coredump in /etc/apache2 .... ....
So I've increased MaxRequestWorkers first to 100, then 500, now its at 1024. But still happening.
This is my apache2.conf at the moment. Code:
<IfModule mpm_worker_module> StartServers 256 MinSpareThreads 256 MaxSpareThreads 256 MaxClients 256 ServerLimit 256 ThreadLimit 256 ThreadsPerChild 256 MaxRequestWorkers 1024 MaxConnectionsPerChild 0 MaxRequestPerChild 1000 </IfModule>
There is a lot of free RAM, and load average is around 0.5, sometimes over 1. But never seen it higher then 2. So server seems healthy to handle the traffic.
top - 16:07:47 up 3 days, 18:18, 2 users, load average: 0.57, 0.46, 0.55 Tasks: 113 total, 1 running, 112 sleeping, 0 stopped, 0 zombie %Cpu(s): 10.5 us, 2.0 sy, 0.0 ni, 87.4 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8176816 total, 2372560 used, 5804256 free, 189684 buffers KiB Swap: 0 total, 0 used, 0 free. 1286692 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21930 www-data 20 0 337212 83308 60072 S 24.9 1.0 0:52.89 apache2 21945 www-data 20 0 327640 72684 58816 S 24.3 0.9 0:48.37 apache2 1182 nobody 20 0 702868 442268 83496 S 0.7 5.4 42:41.32 varnishd
Any ideas why Apache interrupts?
//j
MaxRequestWorkers / MaxClientsUsed to control the upper limit of children that the Apache parent server is allowed to have in memory at one time. These children (also called workers) handle requests on a 1:1 ratio. This translates into the maximum number of simultaneous requests the server can handle.
Server LimitationsThe default Apache setting for MaxClients is 256, however the fact that other distributions often use different values as the default setting must be taken into consideration. Given a desire to set the MaxClients value greater than 256, the ServerLimit setting must also be increased correspondingly.
you should edit mpm_prefork
<IfModule mpm_prefork_module> StartServers 10 MinSpareServers 10 MaxSpareServers 20 ServerLimit 2000 MaxRequestWorkers 1500 MaxConnectionsPerChild 10000 </IfModule>
Basically config got overwritten in: /etc/apache2/mods-available/mpm_prefork.conf
I put the new setting in that file and it seems Apache works correctly now.
Hopefully this helps someone else, don't put your config straight in apache2.conf or httpd.conf. Make sure you change all loaded config files.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With