Mam dość zajęty serwer: PHP (Wordpress) używając W3TotalCache APC, Varnish dla Apache i Cloudflare do obsługi całego ruchu. Ubuntu 14.04.4 LTSAH00161: serwer osiągnął ustawienie MaxRequestWorkers, rozważ podniesienie ustawienia MaxRequestWorkers
Tylko jedna strona ze średnią ilością około 60 000 kliknięć dziennie.
Otrzymuję tę wiadomość co jakiś czas, kilka razy dziennie. Nie ma nic wspólnego z chwilowymi skokami natężenia ruchu, dlatego porównaliśmy czasy z 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
....
....
Więc mam podwyższone MaxRequestWorkers najpierw do 100, potem 500, teraz w 1024. Ale wciąż dzieje.
To jest mój apache2.conf w tej chwili. Kod:
<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>
Jest dużo wolnej pamięci RAM, a średnie obciążenie wynosi około 0,5, czasami w ciągu 1. Ale nigdy nie widziałem wyższe niż 2. Więc serwer wydaje się zdrowe, aby obsłużyć ruch.
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
Jakieś pomysły, dlaczego Apache przerywa?
// j
zwiększyłem MaxRequestWorkers do 5000, serwer był stabilny przez ponad 24 godzin teraz. Najdłuższy od kilku tygodni bez konieczności ponownego uruchamiania Apache. –
Ruch zwiększył się do około 2 milionów trafień dziennie i mamy te same problemy. StartServers 1024 MinSpareThreads 1024 MaxSpareThreads 1024 MaxClients 1024 ServerLimit 1024 ThreadLimit 1024 ThreadsPerChild 1024 MaxRequestWorkers 8192 MaxConnectionsPerChild 0 MaxRequestPerChild 4096 Czy jest coś, co można zrobić bez dodawania więcej serwery? –
Stack Overflow to strona z pytaniami dotyczącymi programowania i programowania. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym rozwiązaniem będzie [Super użytkownik] (http://superuser.com/) lub [Unix i Linux Stack Exchange] (http://unix.stackexchange.com/). Zobacz także: [Gdzie mogę publikować pytania na temat Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww