Ich verwende einen Hobby-Webserver auf einem alten Blue & White G3 / 300 mit Debian PPC Squeeze 2.6.30. Die Leistung ist nach einem Neustart für eine Weile in Ordnung, wird aber irgendwann immer mehr ins Stocken geraten. Derzeit ist die Betriebszeit 76 Tage, und der Hauptschuldige scheint die Speichernutzung von mehr als 10 Apache2-Prozessen zu sein.
Ich glaube , ich brauche die Werte zu senken StartServers
, MinSpareServers
und / oder MaxSpareServers
, aber ich bin mir nicht sicher , was man zu justieren, und es gibt drei Abschnitte für jeweils abhängig von der mpm - Modul in Betrieb ist.
Wie kann ich feststellen, welchen der folgenden Abschnitte ich ändern muss und welche vernünftigen Werte es gibt, wenn die Box über einen physischen Speicher von 448 MB verfügt (seltsamer Upgrade-Verlauf von jeweils einem 64-, 128- und 256-Stick)?
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Es gibt keine anderen Instanzen von StartServers in meiner apache2.conf, aber keines dieser mpm-Module wird in mods-available
oder angezeigt mods-enabled
. Ideen?
Vielen Dank!
quelle
Antworten:
400 MB sind heutzutage nicht viel für einen Webserver - vielleicht möchten Sie die Box ersetzen :)
Das heißt, wenn Ihre Speichernutzung im Ballon steigt, haben Sie wahrscheinlich irgendwo einen Speicherverlust - für einen kurzen Test sehen Sie sich jetzt die Größe der httpd-Prozesse an, stoppen / starten Sie Apache und prüfen Sie, ob sie viel kleiner sind. Wenn sie sie ein paar Tage lang beobachten und sehen, ob sie wachsen.
Wenn es sich um ein Speicherleck handelt, besteht die eigentliche Lösung darin, das Speicherleck zu finden und zu beheben. Da dies jedoch normalerweise ein Problem ist, können Sie sich auch
MaxRequestsPerChild
auf etwas anderes als 0 (unbegrenzt) einstellen . Dadurch werden die Apache-Mitarbeiter getötet, wenn sie eine feste Anzahl von Anforderungen bearbeitet haben (wodurch sie gezwungen werden, ihren durchgesickerten Speicher aufzugeben.Beginnen Sie mit größeren Werten (zu Tausenden oder so) und arbeiten Sie sich bis zu Hunderten vor. Wenn Sie weniger als 100 Anfragen pro Kind erhalten, ist Ihr Speicherverlust groß genug, um eine tatsächliche Behebung zu rechtfertigen , da der Leistungseinbruch durch ständiges Abschalten und erneutes Laichen von Apache-Mitarbeitern erheblich ist.
Betreff: Welche MPM eingestellt werden soll, ist mit ziemlicher Sicherheit die Antwort
prefork
.Sie können rennen
httpd -V
und nach derServer MPM:
Linie suchen , die Ihnen sicher sagt.quelle
Um die Speichernutzung des Apache-Prozesses zu verbessern, müssen Sie die MaxClients anpassen.
Die allgemeine Faustregel lautet: (Maximaler gewünschter Speicher) / (Speichernutzung von 1 Apache-Prozess) = # Max. Clients
Am Ende müssen Sie auch Ihre MaxSpareServers <= Max Clients anpassen .
Die Speichernutzung eines Prozesses hängt stark von den von Ihnen geladenen Modulen ab (PHP usw.). Daher möchten Sie möglicherweise die maximale Anzahl von Clients etwas niedriger einstellen.
quelle