Kenny: Linux Scripte an Load richten

Hallo,

ich möchte meine "Service"-Scripte an die Auslastung meines Servers binden.

Also das manche Scripte mit einer geringeren Prio gar nicht erst gestartet werden wenn der Server gerade viel zu tun hat!

Besser wie wenn der Server ständig abstürzt und ich ihn neustarten muss.

Wie werte ich am besten mit wenigen oder nur einem Befehl die Auslastung so aus?

Kenny

  1. Tach,

    Wie werte ich am besten mit wenigen oder nur einem Befehl die Auslastung so aus?

    wäre es nicht einfacher die Priorität der Scripte entsprechend zu setzen?

    mfg
    Woodfighter

    1. Servus,

      Nein das wäre nicht einfacher, weil es sich nur um ein Script handelt das mehrfach gestartet wird! und ich innerhalb des einen Scriptes schauen müsste ob weitere Starts sinnvoll sind oder umgekehrt wieder welche beendet werden müssten um die 80% load zu halten.

      Kenny

      1. Die einzige Lösung, die mir einfällt: lese mit cat /proc/loadavg aus und reagiere mit ein wenig sed-Parsing (im Stil von /.*0.[0-8][0-9]*$/x/ == x) auf dessen Inhalt.

        Gruß, LX

        --
        RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
        1. Tach,

          Die einzige Lösung, die mir einfällt: lese mit cat /proc/loadavg aus und reagiere mit ein wenig sed-Parsing (im Stil von /.*0.[0-8][0-9]*$/x/ == x) auf dessen Inhalt.

          oder die Ausgabe von uptime parsen, sofern kein /proc zur Verfügung steht.

          mfg
          Woodfighter

          1. Servus,

            Mal ne andere Frage:
            Wie hoch kann meine LOAD denn werden bevor alles zusammen bricht?
            Derzeit steht es auf: 16.65, 16.13, 14.44 (Alter Rechner)

            Kenny

            1. Tach,

              Wie hoch kann meine LOAD denn werden bevor alles zusammen bricht?

              es sollte niemals alles zusammen brechen.

              Derzeit steht es auf: 16.65, 16.13, 14.44 (Alter Rechner)

              Das ist schon sehr hoch, im Schnitt warten also deutlich mehr als zehn Prozesse darauf etwas tun zu können.

              mfg
              Woodfighter

              1. Also meine "Service"-Scripte laufen gerade grandios und die Werte stehen mittlerweile auf:  19.43, 20.17, 21.35  vorhin waren Sie auf 25 sogar..

                Aber wichtig ist doch nur, dass Sie nicht weiter ansteigen?
                Wo sollte sich der Wert einpendeln eurer Meinung nach?

                Kenny

              2. Die Load ist dafür, ob ein System vor dem theoretischen Zusammenbruch steht, leider nur begrenzt aussagekräftig. Niedriger Load ist lediglich ein Garant dafür, dass nicht allzu viele Prozesse um die vorhandenen Ressourcen streiten.

                Die Speicherauslastung (insbesondere Swap) in Verbindung mit hohen Durchsätzen der Festplatte kann viel eher dazu führen, dass einzelne Prozesse aufgrund von Locking in Speicher- und/oder Timeout-Nöte kommen.

                Gruß, LX

                --
                RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
            2. Moin Moin!

              Wie hoch kann meine LOAD denn werden bevor alles zusammen bricht?
              Derzeit steht es auf: 16.65, 16.13, 14.44 (Alter Rechner)

              Oh je, die arme Kiste! Viel mehr als 1.00 pro CPU-Kern sollte es auf Dauer nicht sein. So hohe Load-Werte deuten auf irgendeinen Amokläufer oder (D)DoS-Angriff hin. Sieh mal nach, was so alles läuft, und räume auf. Manchmal reicht schon ein einfacher Reboot, aber in aller Regel läuft irgendetwas fürchterlich falsch.

              (Mein Rekord liegt irgendwo bei über 200 auf einem SMP-System mit zwei PII-233, da war die Kiste aber auch nicht mehr so wirklich ansprechbar.)

              Alexander

              --
              Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    2. Hello,

      Wie werte ich am besten mit wenigen oder nur einem Befehl die Auslastung so aus?

      wäre es nicht einfacher die Priorität der Scripte entsprechend zu setzen?

      Hätte ich aber jetzt auch gedacht. Oder auch ulimit
      http://linux.about.com/library/cmd/blcmdl1_ulimit.htm

      Das sind doch die hauseigenen Mittel von Unix/Linux, um gerade diese Aufgabenstellung zu behandeln.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de