nightfly7e7
Goto Top

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:
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>
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

chewbacca
chewbacca 02.05.2011 um 23:09:46 Uhr
Goto Top
Hallo,

hast du vielleicht ein Php Skript wo du per ini_set was hochgeschraubt hast und das Skript dadurch nicht mehr beendet werden kann?
dog
dog 02.05.2011 um 23:11:04 Uhr
Goto Top
Welches MPM benutzt du?
Der Server wird immer nur mit einem von den dreien kompiliert.
nightfly7e7
nightfly7e7 03.05.2011 um 08:50:13 Uhr
Goto Top
Ne, habe ich nicht. Daran würde ich mich erinnern face-smile
nightfly7e7
nightfly7e7 03.05.2011 um 08:51:18 Uhr
Goto Top
Ich benutze prefork. muss auch, weil ich mod_rewrite benutze und das geht ja nur mit prefork so weit ich gelesen habe

Habe gerade in der Apache Doku gelesen, dass es richtig ist, das die prozesse gestartet bleiben, damit sie für die nächsten anfragen bereit sind. Vielleicht muss ich echt nur den Wert max Clients runter setzten.... Ich weiß es nicht...