Probleme mit der Speichernutzung httpd
( Apache/2.2.29
).
Mit der Zeit steigt die Speichernutzung in den httpd
Prozessen, bis sie schließlich bei 100% liegt.
Das letzte Mal, dass ich neu gestartet habe, httpd
war vor ungefähr 24 Stunden. Ausgabe von free -m
ist:
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 1415 239 0 202 424
-/+ buffers/cache: 788 866
Swap: 1023 4 1019
Um zu beweisen, dass es definitiv so ist httpd
, habe ich neu gestartet httpd
und bin free -m
erneut gelaufen :
[ec2-user@www ~]$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 760 894 0 202 360
-/+ buffers/cache: 197 1457
Swap: 1023 4 1019
Ein Neustart von Apache benötigt also freien Speicher von 239 MB bis 894 MB - was wie ein großer Sprung erscheint.
Ich habe durch die Liste gegangen von derzeit Apache - Module aktiviert ist (es gibt eine ganze Menge) und deaktiviert / entfernt mod_wsgi
und mod_perl
(von denen keiner für diesen Server erforderlich, die eine PHP-basierte Web - Anwendung läuft - Magento, speziell).
Basierend auf https://servercheck.in/blog/3-small-tweaks-make-apache-fly habe ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
ich die folgende Ausgabe ausgeführt und erhalten:
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
15.1328 MB
118.09 MB
127.449 MB
129.059 MB
117.734 MB
113.824 MB
125.062 MB
123.922 MB
119.855 MB
108.066 MB
136.23 MB
114.031 MB
113.27 MB
110.695 MB
102.113 MB
113.234 MB
186.816 MB
118.602 MB
0.835938 MB
Wenn Sie das andere vorgeschlagene Diagnosetool ausführen MaxClients
, wird ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
Folgendes zurückgegeben:
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB
Dieser Server (Amazon AWS- m1.small
Instanz) verfügt 1.7 Gb
über RAM. Also deshalb:
Haben Sie weitere Hinweise / Vorschläge, wie Sie die httpd
Einstellungen am besten optimieren oder wie Sie diagnostizieren können, was genau die Ursache dafür sein könnte?
nginx
, vielleicht ist es an der Zeit, es zu versuchen, aber ehrlich gesagt, ich benutze Apache seit Jahren und hatte nie größere Probleme. Magento kaut wirklich Speicher.
grep httpd
Prozesses enthält (zumindest für mich). Um das zu beheben, würde ich empfehlen, diese Zeile von der Berechnung wie ps aux | grep 'httpd' | grep -v grep | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
-/+ buffers/cache
Zeile ansehen müssen, um die Speichernutzung nach Prozessen zu überprüfen . In diesem Fall ist die Änderung jedoch vergleichbar. Abhängig davon, wie Apache optimiert wurde, kann es mit ein paar Prozessen beginnen, die für die Bearbeitung von Anforderungen bereit sind. Nach einer Zeit von vielen gleichzeitigen Anforderungen werden wahrscheinlich mehr Prozesse für die Verarbeitung der Last bereitgestellt. Die Anzahl der Leerlaufprozesse kann ebenfalls eingestellt werden. Wenn Apache also zu viel Speicher benötigt, müssen Sie einige Anpassungen vornehmen.