J'ai un serveur très occupé: PHP (Wordpress) utilisant W3TotalCache APC, Varnish pour Apache et Cloudflare pour gérer tout le trafic . Ubuntu 14.04.4 LTS
Un seul site Web avec une moyenne d'environ 60 000 visites/jour.
Je reçois ce message de temps en temps, quelques fois par jour. N'ayant rien à voir avec des pics de trafic temporaires, nous avons comparé les temps avec 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
....
....
J'ai donc d'abord porté MaxRequestWorkers à 100, puis 500, maintenant à 1024. Mais cela se produit toujours.
Ceci est mon Apache2.conf pour le 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>
Il y a beaucoup de RAM libre, et la charge moyenne est d'environ 0,5, parfois plus de 1. Mais jamais vu plus haut que 2. Le serveur semble donc sain pour gérer le trafic.
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
Des idées pour lesquelles Apache interrompt?
// j
En gros, config a été surchargé dans: /Etc/Apache2/mods-available/mpm_prefork.conf
Je mets le nouveau paramètre dans ce fichier et semble qu'Apache fonctionne correctement maintenant.
Espérons que cela aide quelqu'un d'autre, ne mettez pas votre configuration directement dans Apache2.conf ou httpd.conf. Assurez-vous de changer tous les fichiers de configuration chargés.
vous devriez éditer mpm_prefork
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 20
ServerLimit 2000
MaxRequestWorkers 1500
MaxConnectionsPerChild 10000
</IfModule>
Vous avez modifié le mauvais fichier. Votre journal indique une erreur "mpm_prefork". Vous devez donc modifier mpm_prefork.conf plutôt que mpm_worker.conf.
Vous pouvez également utiliser "apachectl -M" pour voir quel module vous utilisez . Ex. Mon Apache2 utilise mpm_event_module, je dois donc modifier mpm_event.conf.
$ Apache2ctl -M
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_Host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
**mpm_event_module (shared)**
negotiation_module (shared)
setenvif_module (shared)
status_module (shared)
wsgi_module (shared)
Vous voudrez peut-être consulter le journal d’accès de votre serveur Web. Vous pouvez être la cible d'une attaque xml-rpc si le journal est inondé de publications xml-rpc (par exemple, "POST /xmlrpc.php HTTP/1.1" 200 403). Il existe différents moyens pour empêcher cela, mais Wordpress est enclin à cela.