PehBehBeh

Erfahrungen eines Hobby-Webentwicklers

Exotische PHP-Funktionen: sys_getloadavg()

| Keine Kommentare

Im zweiten Teil dieser Artikelserie („Exotische PHP-Funktionen“) möchte ich euch eine nützliche Funktion vorstellen, mit der ihr eure Website relativ einfach entlasten könnt.


Beschreibung

Mit sys_getloadavg() könnt ihr die Systemlast abfragen. Als Rückgabewert erhält man einen Array mit den Werten der letzten 1, 5 und 15 Minuten.

Beispiel

Das PHP Manual gibt schon ein perfektes Beispiel für die Verwendung dieser Funktion her:

$load = sys_getloadavg();
if ($load[0] > 80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Serverlast zu hoch, versuchen Sie es später noch einmal.');
}

Anstatt die Website für jedermann offline geht, bricht man einige Anfragen einfach ab um die Serverlast zu minimieren.

Achtung: Diese Funktion funktioniert nicht unter Windows!

Update 15.03.2010: Wie mir gestern über Twitter mitgeteilt wurde, ist der Max-Wert für den Load Average von System zu System unterschiedlich. Auf Wikipedia wird die Thematik auch ganz gut erklärt. Es gilt also: Geeignete Werte vorher mit einem Stress-Tool austesten.

Jedoch ist das oben genannte Beispiel auch nur für Demonstrationszwecke gedacht. In einer Produktionsumgebung sollten alle drei Werte des Load Triplets in Betracht gezogen werden, sodass z.B. ermittelt werden kann, ob die Last gerade steigt oder geringer wird.

Dir hat der Artikel gefallen?
Dann abonniere doch den RSS-Feed!