Moje środowisko
- CentOS 6.4 X86_64
- Apache 2.4.4
- PHP 5.4.16 (FPM)
- 2 procesory Intel Xeon E5-2620 @ 2,00 GHz (8 rdzeni, 16 wątków w każdym procesorze)
- 48 GB pamięci RAM.
- 3 dysk twardy 15 RPM 145 GB w RAID0 (BIO
Ciekawe zmienne
<IfModule mpm_event_module>
StartServers 2
ThreadLimit 196
MinSpareThreads 96
MaxSpareThreads 192
ThreadsPerChild 96
MaxRequestWorkers 192
MaxConnectionsPerChild 96
</IfModule>
Status serwera Apache
Wersja serwera: Apache / 2.2.4 (Unix) OpenSSL / 1.0.1e mod_fastcgi / mod-fastcgi-SNAP-0910052141
Zbudowany serwer: 24 maja 2013 16:48:07
Aktualny czas: poniedziałek, 17 czerwca 2013 09:48:11 COT
Czas ponownego uruchomienia: poniedziałek, 17 czerwca 2013 08:35:14 COT
Konfiguracja serwera nadrzędnego. Generacja: 1
serwer nadrzędny Generacja MPM: 0 Czas działania
serwera: 1 godzina 12 minut 57 sekund
Obciążenie serwera: 0,05 0,10 0,09
Łączny dostęp: 14144 - Całkowity ruch: 349,7 MB
Wykorzystanie procesora: u.28 s.25 cu0 cs0 - .0121% CPU obciążenie
3,23 żądania / s - 81,8 kB / sekundę - 25,3 kB / żądanie
1 aktualnie przetwarzane wnioski, 191 wolnych pracownikówPID | Connections | Threads | Async connections | total | accepting | busy | idle | keep-alive | closing ============================================================== 18997 | 3 | yes | 1 | 95 | 0 | 3 18485 | 0 | yes | 0 | 96 | 0 | 0 ============================================================== Sum | 3 | | 1 | 191 | 0 | 3
Dziennik błędów
Komunikat o błędzie to
[Mon Jun 17 09: 32: 45.680842 2013] [mpm_event: error] [pid 8574: tid 140185091581760] AH00485: tablica wyników jest pełna, nie w MaxRequestWorkers
Pojawia się co kilka sekund. Nie rozumiem tego Jak mogę to naprawić?
źródło
MaxConnectionsPerChild
ustawienie jest o wiele za niskie do użytku produkcyjnego. Ponadto ustawienie go na wartość inną niż 0 powinno być wykonywane tylko w systemie Windows, ponieważ powoduje wewnętrzne wycieki pamięci.MaxRequestWorkers of 40 is not an integer multiple of ThreadsPerChild of 25, decreasing to nearest multiple 25
error.log.1
.error.log
wspomina tylko o przeładowaniu.Widzę ten sam problem.
W szczególności możemy spowodować takie zachowanie, ponownie ładując apache.
Następnie widzimy kilka starych procesów, które się nie zatrzymują:
Zwróć uwagę na „starsze” i „nowsze” PID oraz czasy rozpoczęcia. ^^
źródło
Zaczęliśmy to zauważać, gdy jedna z naszych baz danych replik przeszła w tryb offline i zaczęła upływać limit czasu. To wiązało gazillionowe wątki w Apache, najwyraźniej dopóki sprawy się nie popsuły i zaczęliśmy otrzymywać tę wiadomość.
Prawdopodobnie nie jest to normalny przypadek, ale przesyłam to do kanonu w nadziei, że może to pomóc innym, którzy widzą ten błąd.
źródło