Offene Child-Connections / Server hängt bei "..reading.

Alles, was den Apache betrifft, kann hier besprochen werden.

Offene Child-Connections / Server hängt bei "..reading.

Postby garvinhicking » 21. March 2006 15:11

Hi!

Ich habe einen Linux Apache 1.3.34 Server mit PHP 5.1.2, mod_ssl/2.8.25 OpenSSL/0.9.7e und einem Auftritt der ungefähr 20 requests pro Sekunde auf HTML und PHP-Dateien macht (ca. 4GB Traffic/Tag). Nichts wirklich besonders soweit.

Nach einer Weile hat Apache nicht mehr auf Requests reagiert. Nach etwas Forschen stellte sich heraus, dass die MaxClients Zahl erreicht war, und keine weiteren Connections abgearbeitet werden konnten.

Nach dem Deaktivieren von KeepAlive hat sich die Situation verbessert und der Server hat anstelle von 15 Stunden gut 30 Stunden ohne Probleme Seiten ausgeliefert, doch dann dasselbe Phänomen.

Als nächstes habe ich mit den Apache server-status ausgeben lassen und entdeckte, dass sich mit der Zeit immer mehr Verbindungen ansammeln die in der Prozessliste als "R" (Reading Request) markiert sind, aber als VHost ein "?" anzeigen und als Script ein "..reading..". Die "Seconds since beginning of most recent request" (SS) zeigten dabei Werte auf, die deutlich jenseits des Timeouts von 45 Sekunden lagen (2000 Sekunden und noch mehr).

Wenn ich mittels "lsof -a -p XXX -Tqs" dann die PIDs der hängenden Prozesse ansehe, wird auch häufig eine Verbindung zu DSL-IPs (t-ipconnect.de, dsl.hansenet.de usw.) angezeigt. Anscheinend sind das also alles DSL Benutzer, die warum auch immer ewig lang eine Verbindung zum Server offenhaben und ihn dadurch mittelfristig killen.

Kurzfristig habe ich mir mit einem kleinen Shellscript beholfen (http://nopaste.php-q.net/199971) das einfach alle 30 Minuten die Apache Statusausgabe aufruft und dann alle PIDs killt, die länger als 600 Sekunden idlen.

Natürlich ist das keine Lösung, daher wüsste ich gerne woran das eigentliche Problem liegt. Wie finde ich raus wie diese Connections zu stande kriege, und warum timeouten sie nicht? Der Linux Server ist Standard Debian stable, und TCP/IP-mäßig habe ich sonst keine Einstellungen vorgenommen.

Vielen Dank für eure Tipps,
Garvin
garvinhicking
 
Posts: 1
Joined: 21. March 2006 14:55
Location: Köln

Return to Apache

Who is online

Users browsing this forum: No registered users and 230 guests