PHP Skripte zügeln

Oft kommt es vor, daß ein PHP-Skript riesige Datenbank-Abfragen anstößt, ressourcenlastige Berechnungen und Operationen durchführt, oder sich in eine Endlosschleife begibt. All das sind Dinge, die einen Server schnell in die Knie zwingen können, während er versucht alle eintreffenden Anfragen weiter zu bearbeiten. Abhilfe schafft eine „Notbremse“, die die Ausführung eines Skripts ab einer bestimmten Serverlast unterbindet.

Voraussetzung ist der lesende Zugriff auf den /proc Baum auf dem Linux-/BSD-Server, im Speziellen auf die /proc/loadavg Datei. Diese beinhaltet den Load des Servers zum aktuellen Zeitpunkt an erster Stelle. Dieser lässt sich dann leicht extrahieren und in eine Abfrage einbauen die den Skript ab einem bestimmten Load einfach nicht ausführt:


// [start] :ADDED: exanto.de - Check server load
$data = @file('/proc/loadavg');
if ($data) {
    $load = (double) substr($data[0], 0, 4);
    if ($load > 30.00) {
        die('Entschuldigung, leider ist unser System momentan ueberlastet und kann Ihre 
            Anfrage nicht bearbeiten. Bitte versuchen Sie es in ein paar Minuten noch einmal. 
            Vielen Dank fuer Ihr Verstaendnis!');
    }
}
// [ end ] :ADDED: exanto.de - Check server load

Ich hoffe es hilft jemandem, mit widerspenstigen PHP-Skripten fertig zu werden 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert