Automatischer Wartungsmodus bei hoher Serverauslastung
Mit der folgenden Änderung wird der User bei einer hohen Serverlast automatisch auf die Wartungsseite umgeleitet. Dadurch verringert sich die Last und der User sollte, nachdem wieder genügend Ressourcen frei sind, die Seite aufrufen können. Der Admin kann die Seite wie bei dem 'normalen' Wartungsmodus weiterhin nutzen.
Vorwort
Zunächst solltet ihr euren load average beobachten. Wichtig dabei ist, dass Ihr einen Grenzwert feststellt, ab wann der Server in die Knie geht. Den Wert kann man sich z.b. mit folgendem Code ausgeben lassen:
PHP-Code:
$load = sys_getloadavg();
echo $load[0];
Wenn ihr einen 'Grenzwert' herausgefunden habt, müssen folgende Änderungen in der /lib/sessions.lib.php vorgenommen werden.
1. In ca. Zeile 23 unter
PHP-Code:
$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
folgenden Code einfügen
PHP-Code:
$load = sys_getloadavg();
2. Die if-Abfrage in ca. Zeile 24
PHP-Code:
if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
ersetzen mit
PHP-Code:
if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id || $load[0] > 90 && $_SESSION['uid'] != $admin_id) {
Das wars :wink:
Hinweis
90 dient lediglich als Beispiel und sollte auf euren ermittelten 'Grenzwert' geändert werden.