Ergebnis 1 bis 10 von 15

Thema: Automatischer Wartungsmodus bei hoher Serverauslastung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von hankfromhelvete
    Registriert seit
    26.04.2007
    Beiträge
    633

    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'] == && $_SESSION['uid'] != $admin_id) { 
    ersetzen mit

    PHP-Code:
    if ($pageconfig['wartung'] == && $_SESSION['uid'] != $admin_id || $load[0] > 90 && $_SESSION['uid'] != $admin_id) { 
    Das wars


    Hinweis
    90 dient lediglich als Beispiel und sollte auf euren ermittelten 'Grenzwert' geändert werden.

  2. #2
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    Die 90 steht nicht für die prozentuale Auslastung, sondern für die durchschnittliche Anzahl der Prozesse in der Warteschlange.

    Wenn du sowas machst würde ich $load[2] nutzen denn das ist innerhalb der letzten 15 Minuten, es kann nämlich mal schnell passieren, dass es viele sind, aber über einen kurzen Zeitruam macht das nichts aus.

    Mal so ein kleiner Auszug hier vom Server aktuell:
    [0] => 0.44 [1] => 0.69 [2] => 0.92 Damit wäre bei dir schon Wartungsmodus (bei 15 Minuten). Dabei ist der Server aktuell nicht mal 20% ausgelastet :-)
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  3. #3
    Erfahrener Benutzer Avatar von hankfromhelvete
    Registriert seit
    26.04.2007
    Beiträge
    633
    Danke fürs Feedback. Das mit den % werde ich ändern.

    Hmm, wenn ich [2] nehme, könnte die Wartung unnötig eingeschaltet werden, wie man bei deinen Werten z.B. sehen kann. Dann müsste ich den Wert auf 99 oder 100 setzen. [0] wäre eigentlich 'aktueller'.

  4. #4
    Erfahrener Benutzer Avatar von Kraemer84
    Registriert seit
    24.11.2009
    Beiträge
    814
    das ist genial kannste den fertigen code nochmal posten bitte ?

    weil is nur ein gedanke aber bringt das nicht auch was bei bruteforceattacken ?

    brute force überlastet ja den server mit befehlen und wenn dann noch so ein wartungsmodus reinkommt ist der ja auch für den der die bruteforce attacke startet ergo vllt sogar ein abbruch der brute force attacke ??

    weil ich so ein mist überhaupt nicht gut heiße


    oder

    PHP-Code:
    if ($pageconfig['wartung'] == && $_SESSION['uid'] != $admin_id || $load[0] > 90 && $_SESSION['uid'] != $admin_id) { 
    einfach ändern in

    PHP-Code:
    if ($pageconfig['wartung'] == && $_SESSION['uid'] != $admin_id || $load[0] > 90% && $_SESSION['uid'] != $admin_id) { 
    ?
    www.paid4advert.de | more coming soon ..

  5. #5
    Erfahrener Benutzer Avatar von hankfromhelvete
    Registriert seit
    26.04.2007
    Beiträge
    633
    Zitat Zitat von Kraemer84 Beitrag anzeigen
    das ist genial kannste den fertigen code nochmal posten bitte ?
    Der Code ist unverändert. Hatte nur die Beschreibung geändert.

    Zitat Zitat von Kraemer84 Beitrag anzeigen
    bringt das nicht auch was bei bruteforceattacken ?
    Wenn die Serverlast dadurch zu hoch wird ja.

    PHP-Code:
    if ($pageconfig['wartung'] == && $_SESSION['uid'] != $admin_id || $load[0] > 90% && $_SESSION['uid'] != $admin_id) { 
    Das wird nicht funktionieren, da der $load[0] keine % darstellt, wie Gremlin schon geschrieben hat. Man kann den Wert aber auch auf z.B. 95 stellen. Nur man sollte beachten, dass man nach oben hin noch etwas Performance braucht.

    Wenn man keine direkte Möglichkeit hat $load[0] zu kontrollieren, kann man den per echo ausgeben um so einen angemessenen Wert zu ermitteln. Muss man eigentlich nur zu Spitzenzeiten mal beobachten

  6. #6
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    Falls aktuell jemand online ist. Nun fängt es hier langsam an zu laggen, weil nun komplettbackups laufen. Dennoch erreichbar und Speed okay. Aktuelle serverload:

    Array ( [0] => 44.41 [1] => 28.87 [2] => 20.15 )

    Also ich finde man sollte Wartung machen wenn > 10 hatte

    Bei einem Projekt sowas auch mal drin ab >= 15 (bei [2] )

    Es kommt jedoch auch auf den Server drauf an. Muss man individuell beobachten wie es bei einem selbst aussieht. Ich könnte hier bis 40 locker laufen lassen.

    Prozentuale Werte wären da schon viel besser, aber da kommt man glaube ich irgendwie mit exec dran *grübel*
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 22.02.2013, 17:20
  2. Automatischer Bannerwechsel im Header
    Von seg98 im Forum Support zum VMSone
    Antworten: 9
    Letzter Beitrag: 10.05.2010, 10:37
  3. Automatischer Paidmail versand
    Von Gecko1 im Forum Scripte
    Antworten: 12
    Letzter Beitrag: 20.03.2008, 20:00
  4. Einzahlen - DCC im Wartungsmodus?
    Von Rapper im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 02.06.2007, 13:21
  5. Wartungsmodus
    Von florip im Forum Support zum VMSone
    Antworten: 4
    Letzter Beitrag: 07.01.2007, 22:05

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •