Zeitweise haben auf einem unserer Server einige Prozesse sehr lange
Laufzeiten, die auch durch den konfigurierten Timeout nicht beendet
werden. Aufgefallen ist mir das durch das Auswerten des /server-
status. Die Prozesse verbleiben im Operation-mode 'W' (Sending reply)
bis zum nächsten Restart des Servers. Die Zeile auf der server-status
Seite sieht dann so aus (Client, VHost und Request habe ich
weggelassen):
Srv PID Acc M CPU SS Req Conn Child
Slot
6-1 9798 0/0/44780 W 7.77 170568 0 0.0 0.00
1550.65
Es fällt auf, dass der Prozess seit 170568 Sekunden (Spalte SS)
laeuft und damit wohl kein Ende findet. Interessant ist noch, dass es
immer die gleiche Seite (PHP) betroffen ist, aber dort kein Fehler zu
finden ist (nichts im PHP-Error-Log). Ausserdem beschraenken sich die
Prozesse meist auf einen (maximal zwei) Client(s). Die Site hat recht
viel Traffic, jedoch die Anzahl der unbeendeten Prozesse ist gering
(ca. 5 bis 8 pro Woche).
Die Frage ist, warum werden die Prozesse nicht durch den
konfigurierten Timeout beendet? Welche Moeglichkeiten habe ich um
herauszufinden warum die Prozesse nie beendet werden? Ist das
Verhalten vielleicht normal?
Folgender Apache kommt zum Einsatz:
Server Version: Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54
OpenSSL/0.9.7e mod_perl/2.0.2 Perl/v5.8.4
Server Built: Jul 28 2006 09:04:55
API Version: 20020903:9
Die Prefork-Konfiguration:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
ServerLimit 150
MaxRequestsPerChild 100
Ausserdem:
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Danke für jeden Tipp!
Viele Gruesse,
Richard Weiss
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an [EMAIL PROTECTED]
sonstige Anfragen an [EMAIL PROTECTED]
--------------------------------------------------------------------------