Apache benötigt zu lange eine Antwort zu schicken (CPU 100%)

learnLinux

New Member
Hallo,

ich hatte heute plötzlich das Problem das alle Websiten auf meinen Server
nicht erreichbar waren da der Webserver (Apache2) zu lange gebraucht hat
eine antwort zu schicken.

Daher dachte ich das ich einfach Apache neustarte:

/etc/init.d/apache2 stop
Stopping web server: apache2 ... waiting
............................................................
Leider hat er bei einem Start gesagt das Apache bereits läuft (also der Stop
hat nichts gebracht).

Ich konnte das Problem nur lösen in dem ich den einen Apache Prozess der in
einer CPU eine Auslastung von 100% ausgelöst hat mit einem kill -9 (normales
beenden hat nicht geklappt) beendet habe.

Jetzt funktioniert zwar alles wieder aber die wichtigste Frage warum dies
geschehen ist und wie man dies verhindern kann weiß ich leider nicht.
Hat hier jemand dazu eine Idee?

(Siehe auch Anhang)
Der Apache war anscheinend seit 4:30 - 14:30 (Um 14:30 habe ich ihn neugestartet) nicht erreichbar.
 

Attachments

  • server2_currentload_custom.png
    server2_currentload_custom.png
    19.1 KB · Views: 99
  • server2_http_custom.png
    server2_http_custom.png
    21.9 KB · Views: 175
Last edited by a moderator:
Klingt danach, als ob deine Webseite sehr viele Besucher gehabt hat oder immer noch hat und eventuell die Sessions nicht richtig behandelt werden. Daher der Apache sich irgendwann festfrisst.

Ich würde einfach einmal die Apache error Logs durchforsten und schauen, was zu diesem Zeitpunkt der Apache verarbeitet hat.
 
danke für den Tipp.

Im error.log habe ich folgendes gefunden.


[Sun Feb 07 01:18:29 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:29 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:29 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:29 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:30 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:30 2010] [notice] mod_fcgid: process /var/www/web28/html/infusions/hsgallery/photogallery.php(15266) exit(communication error), terminated by calling exit(), return code: 0
[Sun Feb 07 01:18:30 2010] [notice] mod_fcgid: call /var/www/web28/html/infusions/pd_warning/warning.php with wrapper /var/www/web28/.configs/php-fcgi-starter
[Sun Feb 07 01:18:30 2010] [notice] mod_fcgid: call /var/www/web28/html/infusions/pd_warning/warning.php with wrapper /var/www/web28/.configs/php-fcgi-starter
[Sun Feb 07 01:18:31 2010] [notice] mod_fcgid: call /var/www/web28/html/eventlogin2.php with wrapper /var/www/web28/.configs/php-fcgi-starter
[Sun Feb 07 01:18:31 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:31 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:31 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION
[Sun Feb 07 01:18:31 2010] [warn] (103)Software caused connection abort: mod_fcgid: ap_pass_brigade failed in handle_request function
.....

[Sun Feb 07 04:32:06 2010] [error] server reached MaxClients setting, consider raising the MaxClients setting
.....
[Sun Feb 07 06:25:06 2010] [notice] Graceful restart requested, doing restart

....
[Sun Feb 07 06:25:12 2010] [emerg] (43)Identifier removed: mod_fcgid: can't get lock, pid: 15742
Gleiche Meldung mit unterschiedlichen pids bis 06:25 danach bis 14:31:47 keine Meldungen mehr.



Die Meldung
server reached MaxClients setting, consider raising the MaxClients setting
ist anscheinend das Ausschlaggebende denn seit da war der Apache nicht mehr zu erreichen.

In der apache.conf steht
MaxClients 150
150 Anfragen sind doch nicht viel?
Aber wie groß ist die wahrscheinlichkeit das um 4:30 früh so viele Anfragen startet?
Das hört sich nach flooding an?
 
Last edited by a moderator:
[Sun Feb 07 01:18:30 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION


Das ist denke ich das entscheidente. Wie ist fcgi konfiguriert? Verwendest du eine Verwaltungsoberfläche ala ISPCP ?
 
Das ist denke ich das entscheidente. Wie ist fcgi konfiguriert?

Ich setze Confixx ein und habe bei einem Web manuell fcgi+suexec eingerichtet.
fcgi starter:
#!/bin/sh
export PHPRC=/etc/php5/cgi
export PHP_FCGI_MAX_REQUESTS=1000
exec /usr/bin/php5-cgi -d safe_mode=on "$@"


Wobei wenn ich nach der Ausfallzeit gehe stimmt des eben mit der Ausfallzeit genau überein.
In den Access logs sind aber nicht soviele Anfragen....
 
aber das wegen einen Web der komplette Apache nicht mehr funktioniert?
FCGI_MAX_REQUESTS=1000 ist doch schon viel?
(hab jetzt noch eine Null angehängt)

kann es nicht doch
[Sun Feb 07 04:32:06 2010] [error] server reached MaxClients setting, consider raising the MaxClients setting
sein denn nach der Meldung war der Apache bis zum Neustart nicht mehr zu erreichen.

Aber trotzdem halte ich es für sehr sehr komisch das Nachts angeblich so viele Anfragen vorhanden waren...
 
Sry war etwas schnell,

[Sun Feb 07 01:18:30 2010] [warn] mod_fcgid: too much proecess, please increase FCGID_MAX_APPLICATION

diese Einstellung muss natürlich hoch gesetzt werden bei FCGI nicht die Max Requests. Man kann die Clients hoch setzen aber Apache hat ein Limit von Haus aus. Alternativ die Maxkeeplivetime in der apache2.conf heruntersetzen auf 5 - 15ms. Die Fehlermeldungen ansich deuten aber auf eine zu hohe Menge an Besuchern hin.
 
danke für die Antwort..
Ich habe den Wert jetzt erstmal auf 250 hochgestellt.
Trotzdem hallte ich es für sehr seltsam das um 4 Uhr plötzlich so viele Anfragen vorhanden sind und dass ich im Log kaum was finde.
 
Back
Top