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 reloadsinkt (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_limitvon 512 MB zugewiesen, was die hohe Speichernutzung erklärt, die das niedrige Anforderungsvolumen abhängt, und ein PHP von max_execution_time120 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.
memcachedBibliothek. Basierend auf der memcache-Administrationsseite memcache.phpsehen wir nur, dass wir 5GBmemcache zugewiesen haben , wovon memcache 3.3GBverwendet wird. Wäre super wenn ihr uns hier weiterhelfen könnt.
memcachedDaemon 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.