Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

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

like image 333
Joakim Ling Avatar asked Apr 28 '16 20:04

Joakim Ling


People also ask

What is MaxRequestWorkers?

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.

What is server limit in Apache?

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.


2 Answers

you should edit mpm_prefork

<IfModule mpm_prefork_module>       StartServers                     10       MinSpareServers               10       MaxSpareServers              20       ServerLimit                      2000       MaxRequestWorkers         1500       MaxConnectionsPerChild    10000 </IfModule> 
like image 52
Yort Avatar answered Sep 20 '22 21:09

Yort


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.

like image 43
Joakim Ling Avatar answered Sep 19 '22 21:09

Joakim Ling