Ich habe alle möglichen Optionen ausprobiert, aber alle paar Tage (meistens jeden Tag) stellt FPM die Seitenbereitstellung ein und ich erhalte eine 502 (vom Cherokee-Webserver).
Die Protokolle sind mit Folgendem gefüllt:
[15-Sep-2014 10:17:46] WARNING: [pool www] child 10135 exited on signal 11 (SIGSEGV - core dumped) after 15.512406 seconds from start
[15-Sep-2014 10:17:46] NOTICE: [pool www] child 10138 started
[15-Sep-2014 10:18:02] WARNING: [pool www] child 10138 exited on signal 11 (SIGSEGV - core dumped) after 15.657950 seconds from start
[15-Sep-2014 10:18:02] NOTICE: [pool www] child 10166 started
[15-Sep-2014 10:18:20] WARNING: [pool www] child 10212 exited on signal 11 (SIGSEGV - core dumped) after 10.192596 seconds from start
[15-Sep-2014 10:18:20] NOTICE: [pool www] child 10214 started
[15-Sep-2014 10:19:08] WARNING: [pool www] child 10216 exited on signal 11 (SIGSEGV - core dumped) after 42.754452 seconds from start
[15-Sep-2014 10:19:08] NOTICE: [pool www] child 10242 started
[15-Sep-2014 10:20:22] WARNING: [pool www] child 10332 exited on signal 11 (SIGSEGV - core dumped) after 14.862183 seconds from start
[15-Sep-2014 10:20:22] NOTICE: [pool www] child 10494 started
[15-Sep-2014 10:20:48] WARNING: [pool www] child 10494 exited on signal 11 (SIGSEGV - core dumped) after 26.415409 seconds from start
[15-Sep-2014 10:20:48] NOTICE: [pool www] child 10498 started
[15-Sep-2014 10:32:48] WARNING: [pool www] child 11718 exited on signal 11 (SIGSEGV - core dumped) after 21.319360 seconds from start
[15-Sep-2014 10:32:48] NOTICE: [pool www] child 11720 started
Und jedes Mal, wenn dies passiert, ähnelt das letzte Protokoll
[15-Sep-2014 11:01:34] WARNING: [pool www] server reached max_children setting (50), consider raising it
Dies ist die Verbindung nach Cherokee zur gleichen Zeit, es ist nicht einmal eine Spitze ...
Ich habe versucht, dynamisch, auf Abruf behoben und nichts ändert sich. egal welche max_children ich setze es stirbt irgendwann.
Warum es sich nicht einfach erholen kann, weiß ich nicht, aber jetzt komme ich zu dem Punkt, entweder zu etwas anderem zu wechseln oder eine Crontab zu erstellen, die FPM alle 30 Minuten neu startet
Server
- Rackspace 1. Generation 1024 MB RAM, 40 GB Festplatte
- Ubuntu 12.04 LTS
- Cherokee 1.2.103
PHP 5.3.10-1ubuntu3.11 mit Suhosin-Patch (cli) (erstellt: 4. April 2014, 01:30:04 Uhr) Copyright (c) 1997-2012 Die PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
Die Site erhält ungefähr 2k Seitenaufrufe pro Nacht, so dass es nicht einmal eine so große Last ist.
Die Speichernutzung liegt bei 300 -> 400 MB, der Swap ist leer, der Lastdurchschnitt liegt bei <~ 1,5
fpm config
[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
emergency_restart_threshold = 5
emergency_restart_interval = 1s
process.max = 75
include=/etc/php5/fpm/pool.d/*.conf
Poolkonfiguration
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = ondemand
pm.max_children = 50
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.process_idle_timeout = 10s
pm.max_requests = 100
pm.status_path = /status
ping.path = /fpm/ping
chdir = /
Antworten:
Das Erhöhen der Anzahl der Server, das Ändern Ihrer Konfiguration oder Ihres Codes hilft nicht bei einem Segmentierungsfehler. Sogar im Jahr 2014 war 5.3.10 lange im Zahn und aufgrund eines Upgrades. Sie könnten die Core-Dumps mit gdb analysieren, aber niemand wird sehr daran interessiert sein, einen Fehler in einer alten Version von php: upgrade zu beheben.
quelle
Ich frage mich, ob Sie den folgenden Fehler treffen
https://bugs.php.net/bug.php?id=62205
Könnte versuchen, ein Upgrade von PHP
quelle