NEWS

Hoher CPU-Load des Raspberry

  • Forum Testing Most Active Global Moderator Administrators

    Die Speicherverwaltung von Linux mutet für Windows user fast wie Harakiri an.

    Linux mag keinen freien Speicher. Aller wirklich freier Speicher wird bis auf einen kleinen Rest den laufenden Prozessen zugeschoben, damit diese schneller reagieren können.

    Erst wenn alles nicht klappt wird das Swapping aktiviert. Erst dies ist ein alarmzeichen.

    Vorher würde ich mich auch von 30MB freiem Speicher nicht schrecken lassen. Dafür sind bestimmt noch einige Reserven im total Cache im Vergleich zu used cache.

    Die Load von 2.0 gefällt mir weitaus weniger, bedeutet aber nicht, dass die CPU zu 200% ausgelastet ist, sondern dass so viele Prozesse an f Abarbeitung warten, wie die CPU mit 50% Leistung (Raspi2/3 hat 4 Kerne) schaffen würde, wenn alle diese noch nicht ab gearbeiteten Aufgaben auf einmal anstehen würden.

    Ich habe mit der Umstellung auf redis einige Ressourcen einsparen können.

    Gruß

    Rainer


  • MoiN!

    Also bei meiner obigen Betrachtung habe ich jeden Cache abgezogen.

    Das "Speicherleck" leigt direlt an iobroker, da der allokierte Speicher direkt nach einem Restart frei ist.

    Alle anderen Prozesse auf dem System verhalten sich freidlich.

    Spannend ist:

    solange freier speicher da ist läuft der PI bei 5min load von 0,2….

    Erst wenn der Speicher zur neige geht lastet iobroker den PI aus und der Load steigt auf über 1 und verbleibt im Bereich bei 2.

    Daher vermute ich nicht das Problem im System, sondern das sich iobroker "vollsaugt" und daher auch wahnsinnig Last produziert.

    Aktuell stellt das eigentlich mein größtes Problem dar:

    • der PI wird warm,

    • iobroker träge

    Eigentlich schade drum, denn die ersten 24h Stunden ist es ein Engelssystem...gerade seit dem Umzug der CCU auf einen weiteren PI

    bis denne

    Mr.Lee


  • Soooo….

    Hab auch mal auf REDIS umgestellt (total schmerzfrei) und werde mal beobachten.

    Weiß zufällig jemand wie man mit History den system.host.... loggt? Sprich den Speicher und die CPU-Last des Hosts?

    bis denne

    Mr.Lee

  • Forum Testing Most Active Global Moderator Administrators

    @MrLee:

    Hab auch mal auf REDIS umgestellt (total schmerzfrei `
    Ja, das geht wirklich nebenbei. Evtl. Der ein oder andere status nicht sofort synchron.

    @MrLee:

    Weiß zufällig jemand wie man mit History den system.host…. loggt? `
    Ich hab es mit dem rpi Adapter gemacht, geht aber nur bei raspi

    Gruß

    Rainer


  • @MrLee:

    Weiß zufällig jemand wie man mit History den system.host…. loggt? Sprich den Speicher und die CPU-Last des Hosts? `
    Das sollte funtionieren wie mit anderen Datenpunkten auch: Im Reiter "Objekte", Expertenmodus unter "system.host.Dein_Hostname" das Loggen für die Datenpunkte "freemem" oder "mem" und "load" aktivieren.


  • Also seit 2 Tagen laufe ich auf Redis…. Genial. Speicher ca 1/3 weniger und seit 2 Tagen kein volllaufen...

    In Kombination mit yahm macht das wieder richtig Spaß... Vor allem wenn man jetzt das rega polling wieder auf echt kleine intervalle setzen kann...

    Nur mal so als Zwischenstand

    Bis denne

    MrLee


  • Hi MrLee.

    Kannst du ein kurzes how to wie du auf REDIS geschwenkt hast?

    Ist das unkritisch?

    Danke und Gruß

    Gesendet von meinem SM-N9005 mit Tapatalk


  • War ne sache von 2 Minuten. Fünfte auf Anhieb!

    Vorgehen:

    http://forum.iobroker.net/viewtopic.php?t=3181

    Bis denne und viel Erfolg

    MrLee


  • Leider gehören Performance Probleme wohl etwas zu ioBroker. Mein VIS wurde immer langsamer. Zuletzt stürzte das System immer häufiger ab (komplette virtuelle Maschine) und der Neustart von ioBroker war grenzwertig, da viele Adapter nicht von alleine starten wollten. Zunächst habe ich vermutet, dass sich irgendwie die Konfiguration des Systems zerlegt hat. Da bei dem neuen System dieselben Probleme aufgetreten sind, habe ich die Zahl Instanzen der Adapter deutlich reduziert (von 25 auf 12). Siehe da, das System lässt sich wieder Problemlos starten. Und das Beste: VIS ist wieder richtig schnell. Merkwürdig ist, dass es nicht an dem Systemressource gelegen hat (CPU.Load war bei 0,5; 4GB freier Speicher). Ich hege den Verdacht, das ioBroker nicht gut mit der Menge der Instanzen zurechtkam. Das Problem hatte ich schon mal früher, als ich 10 Instanzen von Javascript erzeugt hatte. Auch hier wurde das System unbrauchbar. Damals hatte ich die Systemressourcen nicht so genau im Blick. Wenn System so langsam wird, dann starten die Adapter mit Schwierigkeiten. Häufig muss ich dann den Adapter von Hand neu starten. Dabei habe ich gesehen, dass die Adapter teilweise auch abschmieren und wieder gestartet werden. Ich tippe darauf, dass die Überwachung der Instanzen fälschlicherweise vermutet, dass die Instanzen abgestürzt sind und diese dann wieder neu starten. Das System bremst sich dann gemütlich selbst aus. Da es mit REDIS besser sein soll, stelle ich mir die Frage, ob durch dir Anzahl der Instanzen schlicht die Menge der States die geschrieben/gelesen werden müssen so hoch sind, dass das System es ohne REDIS nicht mehr schafft? Einen spezifischen Adapter, der der Übeltäter ist habe ich bislang jedenfalls nicht gefunden. Leider hat sich mein Problem, dass alle 40 Sekunden das System für 10 Sekunden hängt bislang nich nicht gelöst. Tritt auch bei neuer Maschine auf. Werde hieran auch wieder forschen.


  • @steinwedel:

    Leider gehören Performance Probleme wohl etwas zu ioBroker. `

    ich habe ioBroker zwar nicht auf einen Pi (nur den 2, Host für den BLE Scanner), aber ein generelles Performance Problem habe ich nicht.

    • 58 Adapterinstanzen installiert

    • 34 Prozesse aktiv (ca. 1750 MB RAM)

    • 5 von den 58 Adaptern deaktiviert


  • Komisch wie unterschiedlich das Systemverhalten ist.

    Ich kann mich nur Steinwedel anschließen. Adapter auf das minimalistischte reduziert, trotzdem hängt das System nach unterschiedlicher Zeit.

    Nur ein Restart des Raspberry hilft dann und alles läuft wieder performant.

    Ich weiß nur nicht wie ich der sache auf den Grund gehen kann.

    Gesendet von meinem SM-N9005 mit Tapatalk


  • Moin!

    Genau das verhalten hatte ich auf einem Pi3 auch. Allerdings habe ich eh nur die nötigsten Instanzen laufen (REGA, VIS, 2x HM und Fritzbox).

    Allerdings korrelierte es bei mir immer mit extrem hohem Speicherverbrauch.

    Daher glaube ich auch es gibt ein Memory-Leak der das System schnell dazu bringt sich selber zu beschäftigen.

    Beim PI merkts mann halt besser da der Speicher ja doch sehr schnell gedeckelt ist 🙂

    Mit REDIS habe ich aktuell ganz gute Erfahrungen.

    48h hält das System aktuell durch. Länger konnte ich noch nicht am Stück probieren…

    bis denne

    Mr.Lee


  • So, jetzt habe ich das zweite System auf der Syno mit 8 GByte am laufen…ohne REDIS...mal schaun wer länger durchhält 🙂

    Oder weiß einer wie man auf der Syno REDIS verwendet?

    bis denne

    Mr.Lee


  • So habe nunmehr REDIS installiert. Und, man glaubt es kaum, dass System hängt nicht mehr. Es gibt keine Aussetzer mehr nach 40sec für 10sec. Da REDIS nur die States speichert und sich sonst nichts ändert, heißt das wahrscheinlich, dass auf meinem System das Lesen/Schreiben der States bei ioBroker zu häufig geschieht und das System überfordert ist. Die Anzahl der Adapter und Instanzen dürfte damit primär egal sein. Vielmehr ist interessant, wie häufig sich ein State ändert. Je häufiger dieses der Fall ist, desto eher kommt das System an die Grenzen. IoBroker scheint hier nicht sehr effizient zu sein, da es bei Redis dann doch geht. Das der Raspi schlechter abschneidet ist klar, da das Schreiben auf einer Flash-Karte nicht sehr performant ist. Auch mein System schneidet schlechter ab, als das von ruhr70. Da ich ioBroker in einer virtuellen Maschine laufen lasse und die Lese-/Schreiboperationen dadurch langsamer sind kommt das System schneller an die Grenzen. Hinzukommt, dass auf dem Host ein Raid 6 läuft. Gefühlt ist dieses träger als ein Raid 5 oder einzelnen Festplatte. Daher wird bei mir die Schreib-/Leseperformance weiter eingeschränkt.

    Zu den Symptomen, die dieses Problem mitbringt, scheint mir jetzt vieles plausibel. Wenn das System nicht irgendwann die Daten schreiben kann, dann steigt der Speicherbedarf. Je häufiger der Fall eintritt, desto langsamer wird auch VIS. VIS muss ja auch lesen. Insgesamt ist die CPU nicht ausgelastet, da der Lese-/Schreibprozess wohl das aktuelle Programm (ioBroker) an der weiteren Ausführung (zumindest in Teilen) behindert. Die CPU steht aber anderen Programmen zur Verfügung. Geht irgendwann mal der Seicher zur Neige, steigt auch die CPU-Last durch Auslagerung des Speichers. Bezüglich ioBroker werden wohl nicht alle Programmteile gleichermaßen gehemmt. Die Konsole und VIS sind betroffen. Trotzdem werden Events immer noch zum richtigen Zeitpunkt ausgelöst.

    Ich hoffe, dass mein Ergebnis von anderen auch bestätigt werden kann und dies zu einer Verbesserung von ioBroker führt. Schön wäre es aus meiner Sicht, wenn die interne Funktionsweise von ioBroker näher dokumentiert werden würde. Dann könnte man auch leichter sich durch den Quellcode arbeiten und eventuell das Problem auch selber angehen.

    Bis dahin sollte man, wenn man Performanceprobleme hat Redis zumindest in Erwägung ziehen.

    Herzlichen Gruß Gerhard


  • @steinwedel:

    …heißt das wahrscheinlich, dass auf meinem System das Lesen/Schreiben der States bei ioBroker zu häufig geschieht und das System überfordert ist. `
    ioBroker schreibt die states in die Datei "states.json" maximal alle 30 s. Ich habe die Zeit auf 10 min hochgesetzt, indem ich die 2 Stellen in der Datei "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemServer.js" von 30000 auf 600000 geändert habe; das zwar nicht, um die Systembelastung zu senken, sondern um die Zahl der Schreiboperationen auf die SD Card zu verringern.


  • Nochmal ne Nachträgliche Beobachtung:

    Hatte ne zeitlang das Problem das Adapter dauernd neugestartet wurden…dieses hat den load des RasPi in die Dekce getrieben...also:

    • log prüfen

    • redis nutzen.

    Momentan ideln meine RasPis so bei load 0.2

    bis denne

    Mr.Lee


  • Hallo,

    ich hänge mich hier dran, weil ich denke mein Problem passt ganz gut in diesen Thread.

    Habe hier http://forum.iobroker.net/viewtopic.php?f=8&t=10145 mit hormorans Hilfe mein multihostproblem in den Griff bekommen (zumindest läuft der Slave stabil, wenn er auch noch nix zu tun hat)

    Dabei fiel mir auf dass ich zur Zeit wieder verstärkt CPULoad-Spitzen habe. Ich hatte das erst mit dem Javascript-Adapter in Verbindung gebracht, hat sich aber nicht bestätigt.

    Nun dass was ich beobachte: Sobald ich vis öffne und an meinen Seiten rumschraube kann ich beobachten, wie der Load Wert durch die Decke geht:
    686_load.png
    Dann wird das System komplett unbedienbar, und nach ca. 20min hat sich der Load Wert wieder auf ein erträgliches Mass eingepegelt (unter 1,0)

    Einzig der ping geht noch.

    Gruß

    crepp

    Hier mal noch eine grössere Version: (aktuell geht gar nix mehr…)

  • Forum Testing Most Active Global Moderator Administrators

    Vis (und insbesondere iframes mit flot-charts) zehren schon an der Leistung des Pi.

    wenn es bei dir aber eben diese flot Chrts sind, wird es weniger die CPU-Auslastung sein (was zu prüfen wäre), sondern die Schreib- und Lesezugriffe auf die Daten.

    Was für eine SD-Karte hast du denn?

    Gruß

    Rainer


  • Sandisk,

    Ich setzt die flotcharts aber seit mehr als einem Jahr ein von daher hat sich auf der Schiene nichts geändert. Und wenn man sich im moni die Historie anschaut, sieht man dass sich das Problem in den letzten Tagen (wieder) verstärkt hat.

    Im logfile sind keine Fehler zu sehen, ausser dass ich sehe dass ab und zu sämtliche adapter neu gestartet werden (ohne Reboot)


  • Naja, um nicht raten zu müssen was da passiert schlage ich vor du machst eine SSH Shell auf und lässt dort "top" laufen. Dann provozierst Du den Fehler.

    Was siehst Du in Top? geht die CPU Last eines prozesses hoch? Bei solch hohen CPU werten tippe ich eher darauf das der Raspi ins Swap geht weil ein Prozess mehr speicher braucht als Du hast … Aber das siehst Du damit.

    Danach weisst Du aber auch welcher prozess es ist und man kann weiter überlegen

Suggested Topics

1.0k
Online

36.8k
Users

42.6k
Topics

589.9k
Posts