Setzt man auf einem Webserver sehr viele php-cgi Prozesse ein (allerdings nur mit einem Thread, da der eaccelerator sonst verrückt spielt), gibt es unter hoher Last diverse Probleme beim einfachen /etc/init.d/lighttpd restart

1. Problem:
es werden nicht alle php-cgi Prozesse beendet, bevor der lighty sich wieder startet

2. Problem (daraus resultierend):
die “alten” php-cgis greifen gemeinsam mit den neuen auf den eaccelerator cache zu. Wird dieser dann noch geleert, wird er aus irgendeinem Grund nicht mehr aufgebaut und der Webserver läuft ohne eaccelerator und wirft in regelmäßigen Abständen 500er Fehler.

Alles in allem, nicht sehr schön. Nun haben wir aber eine Lösung gefunden:

Die lightys werden nicht neugestartet, sondern erst gestoppt, dann wird ein killall -9 php-cgi ausgeführt, 2 Sekunden gewarten, dann nochmal den killall Befehl abgesetzt und zuletzt wird lighty wieder gestartet.

Bis jetzt sind wir mit dieser Lösung recht zufrieden, auch wenn es ein wenig länger dauert, alle 18 lightys durchzustarten.

Würde gerne wissen, warum lighty nicht in der Lage ist, alle php-cgi Prozesse zu killen, bevor er sich wieder startet.

4 Antworten zu “lighttpd restart Probleme”

  1. Omar says:

    Hi,

    habe deinen Vorschlag zeitweise umgesetzt. Ich habe das generelle Problem, dass der Server in unregelmäßigen Abständen instabil wird und teilweise nicht ansprechbar ist. Wenn doch, dann kann ich lighty neustarten und es funktioniert wieder für eine Weile.

    Hast du xcache aktiviert? Welche Einstellungen? Ich habe nämlich derzeit die Vermutung, dass die slots für phps oder vars nicht ausreichen und das Anlegen neuer Slots problematisch sein könnte..

  2. Michael says:

    wir nutzen kein xcache, gerade im high-trafic Bereich haben wir mit eAccelerator bessere Erfahrungen gemacht. Habe mittlerweile festgestellt, dass der lighty einfach nicht lange genug wartet. Teilweise würde es anscheinend langen den Lighty zu stoppen, zu warten und ihn dann zu starten. So 100%ig sind wir immernoch nicht durchgestiegen, was hier eigentlich passiert.

  3. Markus says:

    Hi Michael,

    wenn man den lighty startet, muss man ja mit CRTL + C fortführen, da sonst keine neue Eingabe möglich ist. Wie umgeht man das am besten scripttechnisch?

  4. Michael says:

    Das Problem hat sich vonselbst erledigt, als wir ein Upgrade auf Lenny machten. Ich denke nicht, dass es an der lighty Version liegt, sondern eher am Kernel. Habe mich diesbezüglich schon auf diversen Mailinglisten rumgetrieben, aber nie ne ordentliche Lösung gefunden.

    Als dann der neue Lenny Kernel (2.6.26 oder 28 glaube ich) lief, ging alles super, nur dass eben nun das im Beitrag genannte Problem auftritt, dass die php-cgis (wenn es viele sind), nicht schnell genug sterben.

Hinterlasse einen Kommentar.

Network-wide options by YD Freelance Wordpress Development