Lösung 1:
Wir wissen, dass das Speicherproblem von Apache/PHP kommt, denn immer wenn wir ein /etc/init.d/httpd reload ausgeben, sinkt die Speichernutzung
Nein - das bedeutet nur, dass es mit dem Webverkehr zusammenhängt. Sie haben weiter erwähnt, dass Sie mysql auf der Box ausführen - vermutlich um Daten für den Webserver zu verwalten - es könnte hier genauso gut der Übeltäter sein. Ebenso wie andere Dienste, die Ihr Webstack verwendet und die Sie nicht erwähnt haben.
Jedem Apache-Thread wird ein PHP-Speicherlimit von 512 MB zugewiesen, was
erklärtNein tut es nicht. Sie melden durchschnittlich 7 und maximal 25 ausgelastete Server – doch Ihr Arbeitsspeicherdiagramm zeigt ein Delta von etwa 25 GB.
Sie sollten wirklich wieder mit dem grundlegenden HTTP-Tuning beginnen - Sie scheinen konstant 256 httpds zu verwenden, aber Ihre Spitzennutzung beträgt 25 - das ist einfach nur dumm.
und eine max_execution_time von 120 Sekunden, die Threads beenden sollte, deren Ausführung länger dauert
Nein - nur wenn der Ausführungs-Thread innerhalb des PHP-Interpreters liegt - nicht wenn PHP blockiert ist.
das Financial Modeling durchführt
(seufz)
Es wäre hilfreich gewesen, wenn Sie Details darüber angegeben hätten, wie Sie Apache konfiguriert haben, Threaded oder Prefork, welche Version, wie PHP aufgerufen wird (Modul, cgi, fastcgi), ob Sie dauerhafte Verbindungen verwenden, ob Sie gespeicherte Prozeduren verwenden.
Ich würde vorschlagen, dass Sie damit beginnen, mysql auf einen separaten Computer zu verschieben und keine dauerhaften Verbindungen mehr zu verwenden (falls Sie sie derzeit verwenden). Stellen Sie das Speicherlimit auf viel ein senken und dies pro Skript überschreiben. Stellen Sie sicher, dass der Circular Reference Garbage Collector installiert und konfiguriert ist.
Lösung 2:
Wahrscheinlich hast du dein Problem inzwischen gelöst. Als Übergangszeit, um den Server vor dem Swapping / Thrash zu bewahren, führe ich stündlich den folgenden Befehl von cron aus:
#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches
Ich sage nicht, dass dies eine Lösung ist, sondern nur eine Möglichkeit, die Dinge am Laufen zu halten und Ausfallzeiten zu minimieren, während Sie die tatsächliche Ursache des Speicherlecks untersuchen.
Weitere Einzelheiten finden Sie hier.
http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/