Apache nicht bendete Kind Prozesse
Ich brauche mal ein paar Tipps zu konfiguration von Apache
Hi,
ich habe einen vServer bei hosteurope.de mit 2 GB Speicher. Der Apache bedient ca. 15.000 User pro Tag, meine Webseiten sind fast alle dynamisch mit PHP und MySQL.
Jahre lang lief der Server super, im Moment habe ich das Problem, dass sich zu viele Apache Prozesse starten bis der gesamte Arbeitsspeicher belegt ist und der Server von außen nicht mehr reagiert. (Passiert ca. alle 2 Wochen mal)
Sicherlich kann ich das Problem lösen, in dem ich ein größeres Paket mit mehr Ram bestelle, aber vielleicht könnte man ja die Konfig etwas optimieren...
Der Webserver startet ja für jede Anfrage einen Kind Prozess. Mir scheint es so, dass die aber nicht beendet werden, wenn sie nicht mehr benutzt werden.
Im Top sehe ich 77 Prozesse, von denen 75 im sleep Status sind. Im Moment sind 1 GB belegt. Als der Ram voll belegt war, hatte er ca. 140 Prozesse gestartet.
Aber ich glaube nicht, dass ich 140 Anfragen in der gleichen Sekunde hatte, da der Speicher meißtens Nachts voll belegt ist.
Wie sage ich dem Apache das er doch bitte seine Prozesse beenden soll? Keep Alive habe ich mal testweise abgeschaltet:
Was sagt der MaxClients wert genau? Sollte ich den senken?
Meine Konfig:
Hi,
ich habe einen vServer bei hosteurope.de mit 2 GB Speicher. Der Apache bedient ca. 15.000 User pro Tag, meine Webseiten sind fast alle dynamisch mit PHP und MySQL.
Jahre lang lief der Server super, im Moment habe ich das Problem, dass sich zu viele Apache Prozesse starten bis der gesamte Arbeitsspeicher belegt ist und der Server von außen nicht mehr reagiert. (Passiert ca. alle 2 Wochen mal)
Sicherlich kann ich das Problem lösen, in dem ich ein größeres Paket mit mehr Ram bestelle, aber vielleicht könnte man ja die Konfig etwas optimieren...
Der Webserver startet ja für jede Anfrage einen Kind Prozess. Mir scheint es so, dass die aber nicht beendet werden, wenn sie nicht mehr benutzt werden.
Im Top sehe ich 77 Prozesse, von denen 75 im sleep Status sind. Im Moment sind 1 GB belegt. Als der Ram voll belegt war, hatte er ca. 140 Prozesse gestartet.
Aber ich glaube nicht, dass ich 140 Anfragen in der gleichen Sekunde hatte, da der Speicher meißtens Nachts voll belegt ist.
Wie sage ich dem Apache das er doch bitte seine Prozesse beenden soll? Keep Alive habe ich mal testweise abgeschaltet:
Was sagt der MaxClients wert genau? Sollte ich den senken?
Meine Konfig:
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 10000
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 10000
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Dani am 02.05.2011 um 14:22:45 Uhr
Formatierungen hinzugefügt.
Content-ID: 165502
Url: https://administrator.de/contentid/165502
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar