NGINX + PHP5-FPM segmentiert unter hoher Last

9

Ich habe den ganzen Tag mit diesem Problem zu tun gehabt und es macht mich wahnsinnig. Alle Google-Ergebnisse und Suchanfragen führen zu Sackgassen. Ich hoffe, dass jemand mit mir zusammenarbeiten kann, um eine Lösung für mich und zukünftige Opfer zu finden. Hier gehen wir.

Ich betreibe eine sehr beliebte Website mit mehr als 3 Seiten pro Tag. Im Durchschnitt sind das 34 Seitenaufrufe pro Sekunde, aber realistischerweise erreichen sie zu Spitzenzeiten über 300 Seitenaufrufe pro Sekunde. Stellen Sie sich diese als Anfragen vor.

Ich benutze einen Ubuntu 10.04 64-bit Server mit 2 E5620 CPUs, 12GB RAM und einer Micron P300 6Gb / s SSD. Während der Stoßzeiten ist die CPU- und Speicherlast durchschnittlich (20-30% CPU und die Hälfte des Speichers wird verwendet).

Die Software, die diese Site unterstützt, ist: NGINX, MySQL, PHP5-FPM, PHP-APC und Memcached. Ok, nun endlich das Fleisch der Post, hier sind meine Fehlerprotokolle. Dort sind einige dieser Fehler protokolliert.

/ var / log / php5-fpm

20. Juli 14: 49: 47.289895 [HINWEIS] fpm läuft, pid 29373

Jul 20 14: 49: 47.337092 [HINWEIS] bereit, Verbindungen zu handhaben

Jul 20 14: 51: 23.957504 [FEHLER] [pool www] kann die Prozessaktivität eines oder mehrerer untergeordneter Objekte nicht abrufen. Versuche es später noch einmal.

20 Jul 14: 51: 41.846439 [WARNUNG] [Pool www] Kind 29534 mit Code 1 nach 114.518174 Sekunden vom Start verlassen

20. Juli 14: 51: 41.846797 [HINWEIS] [Pool www] Kind 29597 gestartet

Jul 20 14: 51: 41.896653 [WARNUNG] [Pool www] Kind 29408 beendet auf Signal 11 SIGSEGV nach 114.596706 Sekunden vom Start

20. Juli 14: 51: 41.897178 [HINWEIS] [Pool www] Kind 29598 gestartet

Jul 20 14: 51: 41.903286 [WARNUNG] [Pool www] Kind 29398 mit Code 1 nach 114.605761 Sekunden vom Start verlassen

20. Juli 14: 51: 41.903719 [HINWEIS] [Pool www] Kind 29600 gestartet

Jul 20 14: 51: 41.907816 [WARNUNG] [Pool www] Kind 29437 mit Code 1 nach 114.601417 Sekunden vom Start verlassen

20. Juli 14: 51: 41.908253 [HINWEIS] [Pool www] Kind 29601 gestartet

Jul 20 14: 51: 41.916002 [WARNUNG] [Pool www] Kind 29513 mit Code 1 nach 114.592514 Sekunden vom Start verlassen

Jul 20 14: 51: 41.916501 [HINWEIS] [Pool www] Kind 29602 gestartet

Jul 20 14: 51: 41.916558 [WARNUNG] [Pool www] Kind 29494 beendet auf Signal 11 SIGSEGV nach 114.597355 Sekunden vom Start

Jul 20 14: 51: 41.916873 [HINWEIS] [Pool www] Kind 29603 gestartet

Jul 20 14: 51: 41.921389 [WARNUNG] [Pool www] Kind 29502 mit Code 1 verlassen nach 114.600405 Sekunden vom Start

/var/log/nginx/error.log 2011/07/20 15:48:42 [Fehler] 29583 # 0: * 569743 readv () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung von Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 versucht habe, PHP-APC zu deaktivieren, um zu sehen, ob es sich um einen Fehler beim opt cacher handelt, aber die segfaults bestehen weiterhin. Ich habe auch PHP5-SUHOSIN installiert und ich habe es auch deaktiviert, aber die Fehler passieren immer noch.

    
Aco 20.07.2011, 21:15
quelle

4 Antworten

1

Dieses Problem ist mir gerade passiert.

PHP5-FPM hatte bei den meisten seiner Kinder Segmentfehler. In meinem Fall hatten wir 0 Bytes auf der Festplatte. Ein schnelles Protokollieren löschte die segfaults.

    
jesusduarte 04.07.2014 19:15
quelle
0

2011/07/20 15:48:42 [Fehler] 29583 # 0: * 569743 readv () fehlgeschlagen (104: Verbindung durch Peer zurückgesetzt) ​​beim Lesen von 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 Ihrer Konfiguration für Ihren Upstream-Server / Router / Client zurückgesetzt? von Nginx ließ die Anfrage, aber eine Website mit 3 mal die Last, die Sie beschrieben, ich habe diese Nachricht nie gesehen, die angeforderte Ressource ist nicht sogar an einen PHP-FPM-Prozess übergeben, es ist ein Favicon

und für die php-fpm Nachrichten Die Kinder scheinen nach der 114-Sekunden-Grenze zu stoppen, ist das ein Limit, das von Ihrer php.ini-Datei festgelegt wird? Seg-Fehler in PHP treten oft auf, wenn hoher Speicher verwendet wird, Ihre PHP-Skripte können Speicher verlieren und erreichen schließlich das Speicherlimit, da die php-fpm-Prozesse weniger Anfragen bedienen, hilft im Umgang mit Speicherlecks

    
Paul Scheltema 05.08.2011 12:22
quelle
0

Siehe meine Antwort hier, die zu Ihrer Frage gehört (über nginx + magento und high load)

NGINX-FPM-Konfigurationseinstellungen für Magento

Es ist keine direkte Antwort pro sagt, aber es kann Ihnen helfen, Ihre nginx + php-fpm zu konfigurieren, um die Fehler zu beseitigen.

    
CarComp 17.01.2013 12:13
quelle
0

Sie verwenden wahrscheinlich Suhosin Deaktivieren Sie ths suhosin.ini unter /etc/php5/fpm/conf.d und starten Sie den php5-fpm-Dienst neu

Überprüfen Sie die Suhosin-Version und versuchen Sie, eine andere zu installieren.

    
Fernando Trindade 13.11.2014 18:03
quelle