NGINX + PHP5-FPM segfaults unter hoher Last
Habe ich mit diesem problem beschäftigt den ganzen Tag und es treibt mich in den Wahnsinn. Alle Google-Ergebnisse und Recherchen hier führen zu Sackgassen. Ich hoffe, jemand kann mir eine Lösung zu bieten für mich und die zukünftigen Opfer. Hier gehen wir.
Ich arbeite mit einer sehr beliebten website mit über 3M Seite Ansichten pro Tag. Im Durchschnitt ist 34 Seite Ansichten pro Sekunde, aber mehr realistisch, während der peak-Stunden, es wird über 300 Seitenaufrufe pro Sekunde. Denken Sie an diese als Anfragen.
Mir läuft ein Ubuntu 10.04 64-bit-server mit 2 E5620 CPUs, 12 GB RAM, und eine Micron P300 6Gb/s SSD. Während der peak-Stunden die CPU-und Speicher-Last-Durchschnitt (20-30% CPU und die Hälfte des Arbeitsspeichers verwendet wird).
Die software, die Befugnisse dieser Website ist: NGINX, MySQL, PHP5-FPM, PHP-APC und Memcached. Ok, jetzt endlich das Fleisch von der post, hier sind meine error-logs. Es gibt eine Reihe von diesen Fehler protokolliert.
/var/log/php5-fpm
Jul 20 14:49:47.289895 [HINWEIS] fpm läuft, pid 29373
Jul 20 14:49:47.337092 [HINWEIS] bereit steht, mit verbindungen
Jul 20 14:51:23.957504 [ERROR] [pool www] unable to retrieve-Prozess Aktivität von einem oder mehr Kind(ern). Versuchen Sie es später erneut.
Jul 20 14:51:41.846439 [WARNUNG] [pool www] Kind 29534 beendet mit code 1 nach 114.518174 Sekunden vom start
Jul 20 14:51:41.846797 [MITTEILUNG] [pool www] Kind 29597 begann
Jul 20 14:51:41.896653 [WARNUNG] [pool www] Kind 29408 exited on signal 11 SIGSEGV nach 114.596706 Sekunden vom start
Jul 20 14:51:41.897178 [MITTEILUNG] [pool www] Kind 29598 begann
Jul 20 14:51:41.903286 [WARNUNG] [pool www] Kind 29398 beendet mit code 1 nach 114.605761 Sekunden vom start
Jul 20 14:51:41.903719 [MITTEILUNG] [pool www] Kind 29600 begann
Jul 20 14:51:41.907816 [WARNUNG] [pool www] Kind 29437 beendet mit code 1 nach 114.601417 Sekunden vom start
Jul 20 14:51:41.908253 [MITTEILUNG] [pool www] Kind 29601 begann
Jul 20 14:51:41.916002 [WARNUNG] [pool www] Kind 29513 beendet mit code 1 nach 114.592514 Sekunden vom start
Jul 20 14:51:41.916501 [MITTEILUNG] [pool www] Kind 29602 begann
Jul 20 14:51:41.916558 [WARNUNG] [pool www] Kind 29494 exited on signal 11 SIGSEGV nach 114.597355 Sekunden vom start
Jul 20 14:51:41.916873 [MITTEILUNG] [pool www] Kind 29603 begann
Jul 20 14:51:41.921389 [WARNUNG] [pool www] Kind 29502 beendet mit code 1 nach 114.600405 Sekunden vom start
/var/log/nginx/error.melden Sie
2011/07/20 15:48:42 [Fehler] 29583#0: *569743 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 77.223.197.193, server: domain.com, Anfrage: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29578#0: *571695 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 150.70.64.196, server: domain.com, Anfrage: "GET /Seite HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29581#0: *571050 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 110.136.157.66, server: domain.com, Anfrage: "GET /Seite HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29581#0: *564892 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 110.136.161.214, server: domain.com, Anfrage: "GET /Seite HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29585#0: *456171 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 93.223.33.135, server: domain.com, Anfrage: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29585#0: *471192 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 74.90.33.142, server: domain.com, Anfrage: "GET /Seite HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
2011/07/20 15:48:42 [Fehler] 29580#0: *570132 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 180.246.182.191, server: domain.com, Anfrage: "GET /Seite HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
Schließlich möchte ich darauf hinweisen, dass ich habe versucht zu deaktivieren, PHP-APC, um zu sehen, ob es ein Fehler war mit der opt-cacher, aber die segfaults noch blieb. Ich habe auch PHP5-SUHOSIN installiert ist und ich es deaktiviert auch, aber der Fehler noch immer passiert.
- welche php version verwenden Sie... Sie sagen, dass Sie installiert haben, apc, dann geben Sie uns die detail, die Sie von apc-Konfiguration oder pastebin Sie php.ini und php-fpm.conf-Datei dies wird uns helfen, Ihnen zu helfen
- Hallo Aco, haben Sie jemals finden eine Lösung für Ihr problem? Es ist frustrierend, dass der einzige Fehler, den Sie bekommen von php-fpm ist ein seg fault.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Problem nur mir passiert.
PHP5-FPM wurde mit segfaults in den meisten seiner Kinder. In meinem Fall hatten wir 0bytes vorhanden auf der Festplatte. Ein Protokoll Aktenvernichtung gestoppt, die segfaults.
2011/07/20 15:48:42 [Fehler] 29583#0: *569743 readv() failed (104: Connection reset by peer) beim Lesen upstream, client: 77.223.197.193, server: domain.com, Anfrage: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com"
das ist nur ein problem mit deiner config für Ihre upstream-server /router /client zurücksetzen?
der nginx-ließ den Antrag aber mit einer Seite 3 mal die Last, die Sie beschrieben, nie sah ich, dass die Nachricht, die angeforderte Ressource nicht selbst übergeben an ein php-fpm Prozess, der ein favicon
und für die php-fpm-Nachrichten
die Kinder scheinen zu stoppen, nachdem die 114 Sekunden limit, ist, dass eine Grenze gesetzt, indem Sie Ihre php.ini-Datei?
seg Fehler in php Häufig auftreten bei der Verwendung von hohem Speicher, Ihre php-Skripte könnte ein Speicherleck und wird irgendwann an die Speichergrenze, dass die php-fpm Prozesse dienen weniger Anfragen hilft im Umgang mit Speicherlecks
Siehe meine Antwort hier, der in Zusammenhang mit deiner Frage (über nginx + magento und hoher Last)
NGINX-FPM-Konfiguration Einstellungen für magento
Es ist nicht eine direkte Antwort pro sagen, aber es kann Ihnen helfen, konfigurieren Sie Ihr nginx + php-fpm zu helfen, beheben Sie die Störungen.
Sind Sie wahrscheinlich mit suhosin
Deaktivieren dieses Parameters suhosin.ini unter /etc/php5/fpm/conf.d und starten Sie den php5-fpm Dienst
Überprüfen Sie die suhosin-version zu installieren und versuchen Sie eine andere.