So debuggen Sie einen nicht reagierenden Webserver

So debuggen Sie einen nicht reagierenden Webserver

Wir haben einMittlere EC2-Instanceläuft mit Ubuntu 12.04 und stellt über Apache etwa ein Dutzend kleine PHP-Webanwendungen bereit.

Ungefähr jeden zweiten Tag reagiert der Server nicht mehr und ein Neustart der Instanz ist erforderlich, um die Funktionalität wiederherzustellen. Während dieser Zeit kann auf den Server nicht über HTTP oder SSH zugegriffen werden.

Jedes Mal geht die letzte protokollierte Apache-Anforderung an eine PHP-Anwendung, die ein 4 MB großes PDF-Dokument bereitstellt. Der User Agent identifiziert den Client immer als iPad (speziell Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25) und hat oft dieselbe IP-Adresse und ist daher wahrscheinlich derselbe Benutzer.

Die PHP-Anwendung ist eine Legacy-Anwendung und prüft einige Berechtigungen, bevor sie den Inhalt einer Datei von der Festplatte an den Client weiterleitet. Wir konnten dieses Problem weder mit einem iPad noch durch den Zugriff auf die Datei auf andere Weise selbst reproduzieren.

Wir haben einige Überwachungslösungen ausprobiert, um uns ein besseres Bild davon zu machen, was passiert, wenn der Server ausfällt, aber bei keiner davon wurden Probleme mit den Systemressourcen festgestellt.

Meine Frage lautet: Welche Strategien können wir verwenden, um das Problem zu beheben und hoffentlich zu lösen?

Antwort1

Beginnen Sie mit der Überwachung der Systemressourcen (CPU-Auslastung, Speicher, Festplatte), beispielsweise mit collectd oder sysstat.

Bedenken Sie, dass ich mich hier weit aus dem Fenster lehne. Das von Ihnen beschriebene Problem könnte durch die Erschöpfung einer Ressource (höchstwahrscheinlich des Arbeitsspeichers) verursacht werden. Führen Sie egrep -i 'killed process' /var/log/*die Suche nach OOM-Killeraufrufen durch.

Systemprotokolle können Spuren der Ursache enthalten ( /var/log/messages, Fehlerprotokolle von Apache).

Versuchen Sie, detailliertere Protokolle zu aktivieren, und achten Sie beim Testen genau auf Ihr System.

verwandte Informationen