Wir betreiben eine umfangreiche Drupal-Website, die Finanzmodelle erstellt. Wir scheinen in eine Art Speicherverlust zu geraten, da der von Apache verwendete Speicher mit der Zeit zunimmt, während die Anzahl der Apache-Prozesse stabil bleibt:
Wir wissen, dass das Speicherproblem von Apache / PHP herrührt, da die Speichernutzung bei jeder Ausgabe /etc/init.d/httpd reload
sinkt (siehe Screenshot oben und CLI-Ausgaben unten):
Vor dem httpd neu laden
$ frei Insgesamt verwendete freie gemeinsam genutzte Puffer zwischengespeichert Mem: 49447692 45926468 3521224 0 191100 22609728 - / + Puffer / Cache: 23125640 26322052 Swap: 2097144 536552 1560592
Nach httpd neu laden
$ frei Insgesamt verwendete freie gemeinsam genutzte Puffer zwischengespeichert Mem: 49447692 28905752 20541940 0 191360 22598428 - / + Puffer / Cache: 6115964 43331728 Swap: 2097144 536552 1560592
Jedem Apache-Thread wird ein PHP memory_limit
von 512 MB zugewiesen, was die hohe Speichernutzung erklärt, die das niedrige Anforderungsvolumen abhängt, und ein PHP von max_execution_time
120 Sekunden, das Threads beenden soll, deren Ausführung länger dauert, und daher das ständige Anwachsen der Speichernutzung verhindern soll Sehen.
F: Wie können wir untersuchen, was diesen Speicherverlust verursacht?
Idealerweise suche ich nach Schritten zur Fehlerbehebung, die ich auf dem System ausführen kann, ohne das Entwicklerteam zu belästigen.
Zusätzliche Information:
OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
Zu Ihrer Information, wir sind uns des Auslagerungsproblems bewusst, das wir separat untersuchen, und haben nichts mit dem Speicherverlust zu tun, den wir beobachtet haben, bevor das Auslagerungsproblem aufgetreten ist.
memcached
Bibliothek. Basierend auf der memcache-Administrationsseite memcache.php
sehen wir nur, dass wir 5GB
memcache zugewiesen haben , wovon memcache 3.3GB
verwendet wird. Wäre super wenn ihr uns hier weiterhelfen könnt.
memcached
Daemon selbst ist wahrscheinlich in Ordnung. Es ist die PHP-Memcache-Bibliothek, die möglicherweise Speicherverluste verursacht (und damit den Speicherbedarf von Apache-Prozessen erhöht). Mein Problem war vor ungefähr 1 bis 2 Jahren, also könnten die Dinge danach behoben worden sein. Versuchen Sie dennoch, Memcached für eine Weile zu deaktivieren, um festzustellen, ob die Apache-Speichernutzung weiterhin zunimmt.
httpd
, die Speichernutzung weiter zunimmt und die Box schließlich mit einigen Kernelmeldungen abstürzt. Die Leistung ist gut (bis sich die Speichernutzung dem Speicherlimit nähert). Bitte ignorieren Sie das Austauschproblem.