Zu viele Schlafende Apache Prozesse
-
- Posts: 59
- Joined: 2007-08-16 09:39
Zu viele Schlafende Apache Prozesse
Hallo,
habe einen Root-Server, bei dem ab und zu zu viele schlafende Apache-Prozesse entstehen. Einige laufen seit mehreren Minuten, also beenden sich nicht. Eine Analyse hat ergeben, dass es sich dabei um einen einzigen VirtualHost handelt, also wird von einer Website verursacht.
Das Problem ist, dass der Server dabei lahmgelegt wird, was zur vollständigen Unerreichbarkeit von anderen Websites führt.
Hat jemand eine Idee, wie man dagegen vorgehen kann?
Besten Dank im Voraus!
habe einen Root-Server, bei dem ab und zu zu viele schlafende Apache-Prozesse entstehen. Einige laufen seit mehreren Minuten, also beenden sich nicht. Eine Analyse hat ergeben, dass es sich dabei um einen einzigen VirtualHost handelt, also wird von einer Website verursacht.
Das Problem ist, dass der Server dabei lahmgelegt wird, was zur vollständigen Unerreichbarkeit von anderen Websites führt.
Hat jemand eine Idee, wie man dagegen vorgehen kann?
Besten Dank im Voraus!
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
danke für die schnelle Antwort.
Zitat: "...Ein unbeschäftiger Prozess ist einer, der keine Anfrage bedient. Wenn mehr als MaxSpareServers Prozesse unbeschäftigt sind, wird der Elternprozess die überschüssigen Prozesse beenden."
"Voreinstellung: MaxSpareServers 10"
In der oben beschriebenen Situation habe ich über 100 Kind-Prozesse am laufen!
Da MaxSpareServers auf 10 eingestellt ist, folgere ich daraus, dass die jeder Prozess eine Anfrage bedient und aus diesem Grund sich nicht beendet. Oder mache ich da einen gedanklichen Fehler?
Zitat: "...Ein unbeschäftiger Prozess ist einer, der keine Anfrage bedient. Wenn mehr als MaxSpareServers Prozesse unbeschäftigt sind, wird der Elternprozess die überschüssigen Prozesse beenden."
"Voreinstellung: MaxSpareServers 10"
In der oben beschriebenen Situation habe ich über 100 Kind-Prozesse am laufen!
Da MaxSpareServers auf 10 eingestellt ist, folgere ich daraus, dass die jeder Prozess eine Anfrage bedient und aus diesem Grund sich nicht beendet. Oder mache ich da einen gedanklichen Fehler?
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
> Ja, Du machst einen gedanklichen Fehler.
Wo denn?
> Zuerst mal, musst Du natürlich die max. anzahl der Prozesse limitieren.
> ServerLimit
Keine ServerLimit-Anweisung, also wird der Default-Wert verwendet.
> Dann ggf. noch das keepalive Timout herunter setzen.
> Denn ein Prozess wird erst danach gekillt.
Auch keine KeepAlive, also wieder der Default-Wert, also off
Die Datei server-tuning.conf habe ich nicht, wirklich nicht.
Ich verwende eine selbstkompilierte Version von Apache auf einem Debian System.
Wo denn?
> Zuerst mal, musst Du natürlich die max. anzahl der Prozesse limitieren.
> ServerLimit
Keine ServerLimit-Anweisung, also wird der Default-Wert verwendet.
> Dann ggf. noch das keepalive Timout herunter setzen.
> Denn ein Prozess wird erst danach gekillt.
Auch keine KeepAlive, also wieder der Default-Wert, also off
Die Datei server-tuning.conf habe ich nicht, wirklich nicht.
Ich verwende eine selbstkompilierte Version von Apache auf einem Debian System.
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zu viele Schlafende Apache Prozesse
Und welches MPM?stickybit wrote:Ich verwende eine selbstkompilierte Version von Apache auf einem Debian System.
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
Prefork.
Code: Select all
# apache2 -V
Server version: Apache/2.2.3
Server built: Aug 6 2006 11:09:20
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/bin/suexec"
-D DEFAULT_PIDLOG="/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
danke, mal sehen was es bringt.
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
mich wundern nur, dass so viele Prozesse mehrere Minuten lang nicht zu gehen.
Ich mir fast sicher, dass ich noch weitergraben muss.
Hier eine Zeile als Beispiel. Der Aufruf ps aux um 11:22 Uhr
Hier kann man klar sehen, MEM = 1,2%. Und wenn von diesen Prozessen über 100 da sind und nicht zugehen, dann steht das gesamte System wegen dem Speichermangel ganz schön still!
Ich mir fast sicher, dass ich noch weitergraben muss.
Hier eine Zeile als Beispiel. Der Aufruf ps aux um 11:22 Uhr
Code: Select all
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user1 406 0.1 1.2 91696 12512 ? S 11:18 0:00 /usr/sbin/apache2 -k start
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
System
Apache
Apache und PHP wurden mit vielen Modulen kompiliert, deshalb ist der Speicherverbrauch eines Apache-Prozesses relativ hoch.
Das Thema verschieben, geht das?
[/quote]
Code: Select all
Linux version 2.6.16
AMD Athlon(tm) 64 Processor 3200+ (1800 MHz)
1GB RAM
Code: Select all
Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7e PHP/5.1.4
Ja, denke ich auch. Bin uhrsprünglich davon ausgegangen, dass es sich nicht um Apache handelt...Ich glaube, das Thema ist hier falsch und wäre unter / Webserver Installtion / Konfiguration besser aufgehoben.
Das Thema verschieben, geht das?
[/quote]
-
- Project Manager
- Posts: 11183
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: Zu viele Schlafende Apache Prozesse
Moved from Allgemeine *NIX-Serverfragen mit Tiefgang to Webserver - Installation und Konfiguration.
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
So wie es aussieht, ist das nicht der Punkt.Nicht dass Du an in den MaxClients Limit rennst.
Wenn MaxClients erreicht wird, werden weitere Client-Anfragen weiter angenommen und landen in eine Warteschlange. Sie werden erst dann ausgeführt, wenn ein Prozess wieder frei wird.
Das ist ja eben das Problem! Ich stelle mir die Situation so vor.
1. MaxClients wird erreicht. Die meisten Apache "Problem-Prozesse" bedienen dabei nur eine einzige Website, über 100 Stück!
2. Diese Prozesse gehen nicht zu.
3. Der Server fängt massiv an auf Festplatte zu verlagern.
4. Und schon haben wir die Situation da, dass nichts mehr geht!
Das Problem tritt sporadisch auf. Ich vermute, die Jungs haben da ein Online-Spiel installiert. Wenn die beginnen zu spielen, dann wird der Server überlastet.
Mich wundert, nur warum die Apache-Prozesse so lange offen bleiben, ohne dass das Timeout eintritt, nach 30 Sek. etwa.
-
- Project Manager
- Posts: 11183
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: Zu viele Schlafende Apache Prozesse
Code: Select all
Timeout 300
KeepAlive On
KeepAliveTimeout 3
MaxKeepAliveRequests 100
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 500
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 500
</IfModule>
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
Nach dem letzten Zusammenbruch, vor 4 Tagen, habe ich volgende Einstellungen eingetragen. Davor waren sie nicht da, waren also die Default-Werte gültig.
Seitdem keine Probleme. Ich werd' mal den Wert MaxRequestsPerChild vorsichtig anheben, um bessere Perfomace zu erreichen, und gucken, was passiert.
Code: Select all
KeepAlive off
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 150
MaxClients 150
MaxRequestsPerChild 1
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
ich danke euch, eure Hilfe hat mich auf jeden Fall weitergebracht. :-D
Ich werde noch mehrere Tage warten. Falls keine Probleme mehr auftreten, werde ich mit den o.g. Parametern noch weiter spielen.
Ich werde noch mehrere Tage warten. Falls keine Probleme mehr auftreten, werde ich mit den o.g. Parametern noch weiter spielen.
-
- Posts: 538
- Joined: 2005-09-02 11:12
Re: Zu viele Schlafende Apache Prozesse
Max Requests per Child auf 1 zu setzen heißt das Du nach jeder Anfrage (sei es eine Webseite oder nur ein 0px gif den Child beendest.. performant ist das imho nicht ...stickybit wrote:Nach dem letzten Zusammenbruch, vor 4 Tagen, habe ich volgende Einstellungen eingetragen. Davor waren sie nicht da, waren also die Default-Werte gültig.
Code: Select all
KeepAlive off StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 150 MaxClients 150 MaxRequestsPerChild 1
-
- Posts: 59
- Joined: 2007-08-16 09:39
Re: Zu viele Schlafende Apache Prozesse
ja, das ist mir mehr als bewusst. Dies ist eine temporäre Maßnahme, um überhaupt zu testen, woran es liegt.performant ist das imho nicht ...