Ich habe eine Website (Wordpress-basiert), die nicht mehr reagiert. Ich habe SSH in den Server und sah, dass wir nicht mehr genügend Speicher hatten. Fehler in meinen Apache-Protokolldateien zeigten dasselbe an ... Dinge, die aufgrund von Speichermangel nicht zugeordnet werden konnten). Durch einen Neustart des Servers wird das Problem behoben.
Ich schaue also zum Zeitpunkt des Vorfalls in access.log und error.log nach, sehe aber nichts Seltsames. Kein zusätzlicher Verkehr, keine ungewöhnlichen Anfragen. Tatsächlich war die einzige Anfrage zum Zeitpunkt des Problems eine von Googlebot für einen RSS-Feed. Zu diesem Zeitpunkt werden 500 Antwortcodes in den Protokollen angezeigt, bis der Computer neu gestartet wurde. Ich schaue in message.log in der Hoffnung, etwas zu sehen, aber es gibt überhaupt nichts für den ganzen Tag (was seltsam ist, da es Einträge für jeden zweiten Tag gibt).
Der Site ist eine große Menge an Speicher zugewiesen, und normalerweise werden etwa 30% des verfügbaren Speichers verwendet. Meine Frage ... wie würden Sie versuchen, dies an dieser Stelle aufzuspüren? Welche anderen Protokolldateien könnte ich überprüfen oder Strategien anwenden?
Antworten:
Die allgemeinen Empfehlungen:
Spezifische Hinweise:
quelle
Überprüfen Sie, ob die wa-Zeile oben angezeigt wird, wenn Sie warten müssen
Wenn ja, überprüfen Sie Ihr MySQL-Fehlerprotokoll und versuchen Sie, Ihre Tabellen zu analysieren / reparieren.
Dies kann ein Netzwerk- oder Speicherproblem sein. Der Warte-Durchschnitt wird Ihnen das sagen.
Hoffe das hilft
quelle
Sie sollten zuerst alle Plugins deaktivieren und dann Ihren Apache-Server neu starten. Führen Sie top oder mtop im Terminal aus und stellen Sie fest, ob Speicherlecks behoben wurden. Wenn ja, aktivieren Sie Plugins, warten Sie 10 bis 15 Minuten und überprüfen Sie die Speichernutzung auf dem Server, um festzustellen, ob es sich um ein Plugin handelt.
quelle
Top und PS sind sehr gute Werkzeuge. Ich würde auch in / proc / meminfo schauen. Sie können Valgrind zusammen mit Apache starten, um nach Speicherlecks zu suchen. Aber ich würde Apache sowieso nicht empfehlen. Ich kann lighttpd oder nginx empfehlen.
quelle
Sie können so etwas wie New Relic verwenden , Beispiel http://blog.newrelic.com/2010/12/16/measuring-wordpress-performance-with-new-relic-rpm/
Dieses Skript ist auch praktisch: http://www.pixelbeat.org/scripts/ps_mem.py
Anwendungsbeispiel (von hier übernommen ):
quelle