ich habe ein Problem mit einem Managed Server, welches entweder bei mir oder beim Server-Anbieter liegt - letzterer scheint aber auf seiner Seite nichts zu finden, weshalb ich froh wäre, wenn mir jemand diagnosetechnisch etwas unter die Arme greifen könnte.
Und zwar liegen auf diesem Server mehrere Domains, genutzt wird ein Apache 1.3.x mit (im Falle dieser Domain) PHP4 und FastCGI. Seit Dezember ist es nun schon drei oder vier Mal vorgekommen, dass alle FastCGI-Prozesse dieses einen vHosts (alle anderen vHosts laufen anständig weiter) überzulaufen scheinen. Zumindest deute ich das so aus den Fehlermeldungen.
Symptomatisch passiert es einfach urplötzlich, dass man beim Aufruf der Seite entweder einen Timeout oder eine Fehlermeldung ala "Keine Daten erhalten" bekommt. Zum fraglichen Zeitpunkt sagen die Error-Logs dann folgendes in beliebiger Reihenfolge:
Code: Select all
[Tue Jan 6 16:47:47 2009] [error] [client ip.ip.ip.ip] FastCGI: incomplete headers (0 bytes) received from server "/home/httpd/cgi-bin/php-fcgi-starter.fcgi" (in: /usr/www/users/und/so/weiter.php)
[Tue Jan 6 16:47:48 2009] [error] [client ip.ip.ip.ip] FastCGI: comm with (dynamic) server "/home/httpd/cgi-bin/php-fcgi-starter.fcgi" aborted: (first read) idle timeout (60 sec) (in: /usr/www/users/und/so/weiter.php)
[Tue Jan 6 16:50:34 2009] [warn] [client 127.0.0.1] FastCGI: scheduled the restart of the last (dynamic) server "/home/httpd/cgi-bin/php-fcgi-starter.fcgi" process: reached dynamicMaxClassProcs (10) (in: /usr/www/users/und)
Grundsätzlich sehe ich mehrere Möglichkeiten:
a) Die maximale Anzahl Verbindungen mal die maximale Anzahl der FastCGI-Prozesse pro vHost wird wirklich erreicht. In diesem Falle jedoch frage ich mich, warum sich das System davon nicht nach abflauen der Aufrufe "regeneriert", denn um die Website zu reaktivieren ist laut Aussage des Providers ein Neustart des Apache nötig.
b) Es erfolgen Angriffe auf das System.
c) Die FastCGI-Prozesse sterben aufgrund irgendeiner Gemeinheit in den PHP-Skripten ab.
d) Der Betreiber hat die Vermutung geäussert, es könne an der PHP-Direktive "allow_url_fopen" sein, da durch einen Aufruf einer externen Datei vielleicht reihenweise die Verbindungen in Timeouts laufen. Gefunden habe ich solche Aufrufe im wild gewachsenen System der PHP-Website nicht, sehr wahrscheinlich finde ich das aber auch nicht, da doch dann dieses "Regenerationsproblem" nicht auftreten dürfte, oder?
Das Problem an dem ganzen Troubleshooting ist dabei, dass es nicht reproduzierbar ist, solange ich den Fehler nicht kenne und damit triggern kann. Daher hier meine Frage: Ist jemandem ein solches Problem bekannt? Hat vielleicht der "alte" Apache-Zweig (es ist die neueste Version der 1.3er Linie drauf) entsprechende Probleme? Habt Ihr sonst irgendwelche Tipps, Anregungen oder Ideen? Ich bin für wirklich jede Hilfe dankbar, um zumindest auf den richtigen Trichter zu kommen und heraus zu bekommen, ob das Problem beim Provider oder bei der Website liegt.
Vielen Dank im Voraus und schon einmal ein schönes Wochenende!
Arne