Zu viele apache (httpd) Prozesse?

Nintendo64

Newbie
Registriert
Jan. 2011
Beiträge
6
Guten Tag liebe Community,

seit der Installation von "DirectAdmin" habe ich das Problem, dass die Prozessanzahl anfang bei ~100 lag und später dauerhaft über 160 anstieg.

unbenannt3qs68pn1zm.png


Wie man sehen kann, sind dafür hauptsächlich apache Prozesse dran schuld. Nun kommt aber das hauptächliche Problem:
Diese httpd Prozesse steigern spontan am Tag irgendwann ihre Anzahl auf über 400 (!) für wenige Minuten und sinken dann wieder auf ca. 160, in dieser Zeit, in der Prozesse auf diese gigantische Summe steigen, ist die Seite auch für wenige Minuten überhaupt nicht mehr erreichbar.

Wie kann ich mich an die Lösung dieses Problems nähern? :(

mfg Nintendo64
 
KeepAlive zu hoch?

Wenn nicht ganz spezielle Anforderungen dazu bestehen würde ich das mal auf off stellen.
Dann käme noch StartServers und MinSpareServers sowie MinSpareThreads in Frage. Wie ist das eingestellt?

Aber mal nebenbei gefragt. wieso DirectAdmin? Dieses Tool gehört zu den Resourcen Fressern. Macht erst Sinn wenn Du sehr viele Domains verwaltest. Dann ist Deine Server Umgebung aber auch hardwaremäßig entsprechend ausgestattet.

Ich kenne DirectAdmin nicht aus eigener Erfahrung aber ich kann mir gut vorstellen dass das Tool z.B. Deine StartServer Variable mal eben 3 stellig einstellt..

Wenn Du unter 10 Domains damit verwaltest solltest Du ganz auf ein Panel verzichten. Das ist doch innerhalb kürzester Zeit manuell optimiert.
 
Prüfe bitte deine Apache-Config. Ich nehme mal an dass du Prefork verwendet. Da kannst du einstellen wieviele Server-Prozesse zu Beginn gestartet werden und auch wieviele es maximal sein dürfen. Und du kannst auch einstellen wieviele davon maximal Idle sein dürfen.

Kugg dir mal die Dokumentation auf http://httpd.apache.org/docs/2.2/mod/prefork.html an!
 
Vielen Dank für die schnellen Antworten, gestern hatte ich sogar das Problem, dass aufeinmal über 500 (!) httpd Prozesse zu verzeichnen waren, CPU Auslastung lag bei 100% und beim Betretten der Seite kam sogar kurzzeitig die Meldung, dass keine Verbindung zur Datenbank aufgestellt werden konnte :eek:

Bleys schrieb:
KeepAlive zu hoch?

Wenn nicht ganz spezielle Anforderungen dazu bestehen würde ich das mal auf off stellen.
Dann käme noch StartServers und MinSpareServers sowie MinSpareThreads in Frage. Wie ist das eingestellt?

Aber mal nebenbei gefragt. wieso DirectAdmin? Dieses Tool gehört zu den Resourcen Fressern. Macht erst Sinn wenn Du sehr viele Domains verwaltest. Dann ist Deine Server Umgebung aber auch hardwaremäßig entsprechend ausgestattet.

Ich kenne DirectAdmin nicht aus eigener Erfahrung aber ich kann mir gut vorstellen dass das Tool z.B. Deine StartServer Variable mal eben 3 stellig einstellt..

Wenn Du unter 10 Domains damit verwaltest solltest Du ganz auf ein Panel verzichten. Das ist doch innerhalb kürzester Zeit manuell optimiert.
"DirectAdmin" war leider von meinem Hoster aus verfügbar zur Installation, davor hatte ich "ispCP Omega" und sie haben mich in dem glauben gelassen, dass das wohl besser wäre...
Verwalten tue ich tatsächlich nur eine einzige Domain auf dem Server, dementsprechend wäre nach Ihrer Aussage gar keine ControlPanel notwenig, doch davon habe ich bisher noch nichts gehört, dass das so geht. Es müssten doch Programme wie Apache, ProFTP, myPHPAdmin usw.. manuell installiert und eingerichtet werden, oder wie läuft das? *Intresse geweckt sei*
Eine etwas amateur hafte Frage, doch in welche Datei müsste ich den reinschauen um die aktuellen Apache Einstellungen auszulesen bzw. mit welchem Befehl über die Konsole?
Ich würde diese Einstellungen gerne hier posten um weiter die Problematik zu analysieren.


IceMatrix schrieb:
Prüfe bitte deine Apache-Config. Ich nehme mal an dass du Prefork verwendet. Da kannst du einstellen wieviele Server-Prozesse zu Beginn gestartet werden und auch wieviele es maximal sein dürfen. Und du kannst auch einstellen wieviele davon maximal Idle sein dürfen.

Kugg dir mal die Dokumentation auf http://httpd.apache.org/docs/2.2/mod/prefork.html an!
Vielen Dank für den hilfreichen Link! Doch auf welche Art und Weise kann ich auslesen, welche Apache Version (nicht die Versions Nummer, sondern "Modell" wie Prefork) ich verwendte?
Soweit ich das verstanden habe aus der Dokumentation des Links, ergibt sich daraus, dass "der" Apache diese Prozesse im vornerein schon bildet und diese auf eine Verbindung warten, damit die Clienten nicht erst auf den Aufbau der Verbindung warten müssen.

Nun stellt sich natürlich die Frage, ob diese durch das "KeepAlive" erhalten bleiben oder doch durch die ca. ~1000 gleichzeitigen Anfragen der User im selben moment? :(

mfg Nintendo64
 
Du kannst dir über
netstat -anp | egrep "(apache|httpd)"
die offenen Verbindungen anzeigen lassen.

ESTABLISHED ist ne aktive Verbindung, jede davon hält einen Apache-Prozess am Laufen!

Dass du Prefork verwendest ist sehr wahrscheinlich, denn die anderen Module erzeugen keine Child-Prozesse, sondern nur Threads.
 
ich nehme mal an Du hast SSH Zugriff auf den Server. Wo die Konfigurationsdateien liegen ist u.a. von der Distribution abhängig die auf dem Server läuft. Allgemein liegen die Config Dateien unter /etc/apache2 (Debian und Ubuntu z.B.)

Aufruf nach erfolgreicher SSH Verbindung wäre z.B.:

nano /etc/apache2/http.conf (in älteren Apache Versionen wird über die apache2.conf konfiguriert)

Natürlich als root. Eine einfache Beschreibung der Konfigurationsmöglichkeiten findest Du u.a. im Ubuntu Wiki:
http://wiki.ubuntuusers.de/Apache

Ein einfacher Weg an sämtliche Informationen über den Server zu kommen ist phpinfo. Erstelle eine leere Seite, nenne sie z.B. phpinfo.php und füge folgendes ein:
<?php
phpinfo();
?>

Auf deinen Server hochladen und aufrufen......
 
was er da laufen hat ist kein debian oder ubuntu. dort heißen die prozesse "apache". er hat vermutlich suse oder redhat als basis.
 
Zurück
Oben