Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Rpi-Adapter CPU Load

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Rpi-Adapter CPU Load

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Hallo zusammen,

      In den letzten Tagen zeigte mir der Rpi-Adapter immer mal wieder eine um 1.0 an.

      In der json Ausgabe des Scripts zur Adapterinfo von ruhr70 war jedoch nicht zu erkennen warum.

      Hier ein Beispiel in normaler Last
      144_img_20160625_210435_287.jpg

      Da auf dem raspi eigentlich nur ioBroker läuft kam vielleicht noch SQL oder influxDB oder systeminterne Programme als Übeltäter in Frage.

      Daraufhin bin ich über die Konsole auf den raspi und habe mir mit Top die Last angesehen
      144_img_20160625_210503_379.jpg

      Die Load liegt etwa um den Faktor 10 niedriger.

      Ist das nur bei mir so?

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • lobomau
        lobomau last edited by

        Meine Frage/Feststellung geht in die selbe Richtung.

        Der RPI Adapter zeigt bei mir Werte an wie:

        load1 = 0.39

        load5 = 0.23

        load15 = 0.25

        Frage: wofür stehen die einzelnen loads? Wahrscheinlich entspricht das 39%, 23% und 25%!?

        Diese Werte stimmen aber nicht überein mit den Werten, wenn ich die Auslastung über die Android App RasPi Check auslese (8%).

        Weiß jemand wie ich an diese 8% komme über iobroker?

        Der einzige Wert, den ich von RPI nutzen kann ist die Temperatur.

        Unten habe ich zur selben Zeit die Daten gegenübergestellt (siehe screenshot)

        <size size="85">(die letzten Wochen hatte ich Probleme mit Temperatur über 70°C und Auslastung von 33%. Anschließender Neustart vom Raspi (nach 2 Monaten ohne Neustart) und gleichzeitiger Aktualisierung auf js-controller 0.11.1 ist das Problem seit 23 Std behoben.)</size>
        1146_225517231_66436.jpg
        1146_rpi.gif

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators last edited by

          Die Load average ist nicht die Auslastung der CPU.

          https://de.wikipedia.org/wiki/Load

          Was der Adapter anzeigt ist die Load average der letzten, der letzten 5 und der letzten 15 Minuten

          Was deine App anzeigt ist die tatsächliche Auslastung der CPU.

          Dies erhältst du auch mit dem Befehl top über die SSH Konsole
          144_img_20160810_221732_371.jpg
          Im Prinzip ist es 100% - die hier gezeigte Idle von 99,3%=0,7%

          Vielleicht kann einer der scriptcracks dazu ein js Skript schreiben, das einen entsprechenden Datenpunkt anlegt und regelmäßig updated.

          Gruß

          Rainer

          1 Reply Last reply Reply Quote 0
          • A
            aleks-83 last edited by

            @lobomau:

            Meine Frage/Feststellung geht in die selbe Richtung.

            Der RPI Adapter zeigt bei mir Werte an wie:

            load1 = 0.39

            load5 = 0.23

            load15 = 0.25

            Frage: wofür stehen die einzelnen loads? Wahrscheinlich entspricht das 39%, 23% und 25%!?

            … `
            Ich frage hier nochmal nach…

            Denn ich hatte es auch so verstanden dass die Werte x100 = % ergeben.

            Aber ich bekomme gelegentlich Werte >1 angezeigt.

            Das kann ja dann irgendwie nicht passen.

            Muss man hier einen Faktor verwenden?

            Oder sind die Load Werte einfach unzuverlässig/falsch?

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Homoran:

              Vielleicht kann einer der scriptcracks dazu ein js Skript schreiben, das einen entsprechenden Datenpunkt anlegt und regelmäßig updated. `
              Ich verwende dieses Skript zur Anzeige der CPU-Last.

              // CPU-Last aus Datei /proc/stat ermitteln
              
              var fs = require('fs');
              var idLast = getIdByName('Service.CPU-Last');
              var fn = '/proc/stat';
              
              var cpuUser = 0;
              var cpuNice = 0;
              var cpuSystem = 0;
              var cpuIdle = 0;
              
              function cpuLast(text) {
                  var lines = text.split('\n');
                  var cpu = lines[0].split(' '); 
                  var cUser = parseFloat(cpu[2]) - cpuUser;
                  var cNice = parseFloat(cpu[3]) - cpuNice;
                  var cSystem = parseFloat(cpu[4]) - cpuSystem;
                  var cIdle = parseFloat(cpu[5])- cpuIdle;
                  var last = 100 * (1 - cIdle / (cUser + cNice + cSystem + cIdle));
                  setState(idLast, Math.round(10 * last) / 10, true);
                  cpuUser = parseFloat(cpu[2]);
                  cpuNice = parseFloat(cpu[3]);
                  cpuSystem = parseFloat(cpu[4]);
                  cpuIdle = parseFloat(cpu[5]);
              }
              
              function getStat() {
                  fs.readFile(fn, 'utf8',  function(err, text) {
                      if(err) log('Fehler beim Lesen von /proc/stat', 'error');
                      else cpuLast(text);
                  });
              }
              
              schedule('*/10 * * * * *', getStat);
              
              
              1 Reply Last reply Reply Quote 0
              • A
                aleks-83 last edited by

                OK.

                Und wie bekomme ich da einen Wert raus auf die Visu? :oops:

                Und wird das nur alle 10 min. aktualisiert?

                Sorry, bin im javascript noch nicht so fit.

                1 Reply Last reply Reply Quote 0
                • 0
                  0018 last edited by

                  @aleks-83:

                  Ich frage hier nochmal nach…

                  Denn ich hatte es auch so verstanden dass die Werte x100 = % ergeben.

                  Aber ich bekomme gelegentlich Werte >1 angezeigt.

                  Das kann ja dann irgendwie nicht passen.

                  Muss man hier einen Faktor verwenden?

                  Oder sind die Load Werte einfach unzuverlässig/falsch? `

                  Nicht ganz, siehe https://de.wikipedia.org/wiki/Load

                  Der Load kann weit über 1 hinausgehen.

                  Wenn der load < 1 ist, ist der Pi nicht gestresst alles läuft gut.

                  load = 1, der Pi läuft optimal, alle Prozesse werden optimal abgearbeitet

                  load > 1, der Pi wird stärker beansprucht, Prozesse dauern länger

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @aleks-83:

                    Und wie bekomme ich da einen Wert raus auf die Visu? `
                    Den Wert enthält der Datenpunkt mit der ID "javascript.0.Service.CPU-Last". Der muss vorher im Reiter "Objekte" mit dem Typ "Zahl" (number) und der unit "%" erzeugt werden.
                    @aleks-83:

                    Und wird das nur alle 10 min. aktualisiert? `
                    Nein, alle 10 s.

                    1 Reply Last reply Reply Quote 0
                    • A
                      aleks-83 last edited by

                      OK, danke euch !

                      Den Datenpunkt Service.CPU-Last habe ich erstellt.

                      Wenn ich dein Skript starte bekomme ifolgende Fehlermeldungen im Log:

                      javascript.0	2018-08-22 16:12:00.577	warn	at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
                      javascript.0	2018-08-22 16:12:00.577	warn	at script.js.RaspberryPi.CPULastAuslesen:30:14
                      javascript.0	2018-08-22 16:12:00.576	warn	at cpuLast (script.js.RaspberryPi.CPULastAuslesen:20:5)
                      javascript.0	2018-08-22 16:12:00.574	warn	State "undefined" not found
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        Hat der Datenpunkt auch den Namen "Service.CPU-Last" ? Wenn nicht, trage die ID direkt in Zeile 4 ein (ohne getIdByName()).

                        1 Reply Last reply Reply Quote 0
                        • A
                          aleks-83 last edited by

                          Also ich hatte einen Datenpunkt namens CPU-Last in einem Ordner Service im Javascript.0 Ordner angelegt.

                          Jetzt habe ich den Service Ordner gelöscht und den Datenpunkt unter Javascript angelegt.

                          Dann in deinem Skript den Namen "CPU-Last" angegeben.

                          Jetzt läuft es !

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          519
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          5
                          11
                          4056
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo