NEWS
IOBroker auf RasPi 4 wird immer lahmer
-
-
@bernd33-1 Danke!
@wendy2702
ist tatsächlich esp-home -
@bernd33-1 sagte in IOBroker auf RasPi 4 wird immer lahmer:
Kann man den JS-Controller noch genauer untersuchen? Also was genau die Load verursacht?
Wenn simple-api wie in deinem letzten Post ~50% CPU-Last verursacht, scheint da einiges an States drüber zu gehen. Die werden dann auch alle noch vom Controller verarbeitet. Wie viele das sind, solltest du in der Instanzen-Liste im Admin sehen, wenn du den Expertenmodus anmachst.
-
Allgemein mal: Bin schon beeindruckt wie schnell, intensiv und Lösungsorientiert hier geholfen wird! Danke!
@alcalzone
Meinst du das?
-
@bernd33-1 Ja das meinte ich. Scheint mir jetzt aber nicht besonders viel zu sein. Frage mich wo da 50% Last herkommen.
-
Ok, wenn ich den Simple-API Adapter stoppe, dann komm ich noch auf eine maximale CPU Last von 30%
Hm, kann man bei der Simple-API "unter die Haube" schauen?
-
Fast 120MB RAM für die simple-api?! Bei mir belegt die ~36MB...
-
@bernd33-1 Vielleicht mal das loggen für Simple Api auf Debug stellen!?
-
Gute Idee. Also, über die Simple-API kommen von 3 ESP8266 Messdaten an den IOBroker. So alle paar Sekunden. Und das scheint den IOBroker tatsächlich ans Limit zu bringen.
Hm, jetzt ist guter Rat teuer
2022-03-14 16:05:32.868 debug Add to Response-Get: {"id":"javascript.0.SolarThermie.CollectorTemp","val":60.75,"value":60.75} simple-api.0 2022-03-14 16:05:32.862 debug Add to Response-Get: {"id":"javascript.0.Photovoltaik.Watt","val":"281.70","value":"281.70"} simple-api.0 2022-03-14 16:05:32.862 debug Add to Response-Get: {"id":"javascript.0.Photovoltaik.Volt","val":"241.00","value":"241.00"} simple-api.0 2022-03-14 16:05:32.859 debug Add to Response-Get: {"id":"javascript.0.Photovoltaik.Frequenz","val":"50.00","value":"50.00"} simple-api.0 2022-03-14 16:05:32.859 debug Add to Response-Get: {"id":"javascript.0.Photovoltaik.Energy","val":1591.16,"value":1591.16} simple-api.0 2022-03-14 16:05:32.858 debug Add to Response-Get: {"id":"javascript.0.Photovoltaik.Ampere","val":1.18,"value":1.18} simple-api.0 2022-03-14 16:05:32.843 debug GET-setBulk for id=javascript.0.SolarThermie.CollectorTemp, oid=CollectorTempused=CollectorTemp, value=60.75 simple-api.0 2022-03-14 16:05:32.482 debug GET-setBulk for id=javascript.0.Photovoltaik.Watt, oid=Wattused=Watt, value=281.70 simple-api.0 2022-03-14 16:05:32.007 debug GET-setBulk for id=javascript.0.Photovoltaik.Volt, oid=Voltused=Volt, value=241.00 simple-api.0 2022-03-14 16:05:31.610 debug GET-setBulk for id=javascript.0.Photovoltaik.Frequenz, oid=Frequenzused=Frequenz, value=50.00 simple-api.0 2022-03-14 16:05:30.803 debug GET-setBulk for id=javascript.0.Photovoltaik.Energy, oid=Energyused=Energy, value=1591.16 simple-api.0 2022-03-14 16:05:29.348 debug GET-setBulk for id=javascript.0.Photovoltaik.Ampere, oid=Ampereused=Ampere, value=1.18 simple-api.0 2022-03-14 16:05:25.787 debug Values: {"Ampere":"1.18","Energy":"1591.16","Frequenz":"50.00","Volt":"241.00","Watt":"281.70","CollectorTemp":"60.75","user":"system.user.admin"} simple-api.0 2022-03-14 16:05:24.771 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Stpdnrelais","val":0,"value":0} simple-api.0 2022-03-14 16:05:24.771 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Undervoltage","val":0,"value":0} simple-api.0 2022-03-14 16:05:24.770 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Stpdntemp","val":18.94,"value":18.94} simple-api.0 2022-03-14 16:05:24.769 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Celldif","val":"0.010","value":"0.010"} simple-api.0 2022-03-14 16:05:24.769 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage7","val":3.939,"value":3.939} simple-api.0 2022-03-14 16:05:24.767 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage6","val":3.933,"value":3.933} simple-api.0 2022-03-14 16:05:24.765 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage5","val":3.938,"value":3.938} simple-api.0 2022-03-14 16:05:24.124 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage4","val":3.939,"value":3.939} simple-api.0 2022-03-14 16:05:24.124 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage3","val":3.938,"value":3.938} simple-api.0 2022-03-14 16:05:24.123 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage2","val":"3.930","value":"3.930"} simple-api.0 2022-03-14 16:05:24.122 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Cellvoltage1","val":"3.940","value":"3.940"} simple-api.0 2022-03-14 16:05:24.122 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Packcurrent","val":0.62,"value":0.62} simple-api.0 2022-03-14 16:05:24.115 debug Add to Response-Get: {"id":"javascript.0.Powerbank.Packvoltage","val":27.55,"value":27.55} simple-api.0 2022-03-14 16:05:23.047 debug GET-setBulk for id=javascript.0.Powerbank.Stpdnrelais, oid=Stpdnrelaisused=javascript.0.Powerbank.Stpdnrelais, value=0 simple-api.0 2022-03-14 16:05:23.046 debug GET-setBulk for id=javascript.0.Powerbank.Undervoltage, oid=Undervoltageused=javascript.0.Powerbank.Undervoltage, value=0 simple-api.0 2022-03-14 16:05:23.045 debug GET-setBulk for id=javascript.0.Powerbank.Stpdntemp, oid=Stpdntempused=javascript.0.Powerbank.Stpdntemp, value=18.94 simple-api.0 2022-03-14 16:05:23.044 debug GET-setBulk for id=javascript.0.Powerbank.Celldif, oid=Celldifused=javascript.0.Powerbank.Celldif, value=0.010 simple-api.0 2022-03-14 16:05:23.044 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage7, oid=Cellvoltage7used=javascript.0.Powerbank.Cellvoltage7, value=3.939 simple-api.0 2022-03-14 16:05:23.043 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage6, oid=Cellvoltage6used=javascript.0.Powerbank.Cellvoltage6, value=3.933 simple-api.0 2022-03-14 16:05:23.034 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage5, oid=Cellvoltage5used=javascript.0.Powerbank.Cellvoltage5, value=3.938 simple-api.0 2022-03-14 16:05:23.034 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage4, oid=Cellvoltage4used=javascript.0.Powerbank.Cellvoltage4, value=3.939 simple-api.0 2022-03-14 16:05:23.034 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage3, oid=Cellvoltage3used=javascript.0.Powerbank.Cellvoltage3, value=3.938 simple-api.0 2022-03-14 16:05:23.033 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage2, oid=Cellvoltage2used=javascript.0.Powerbank.Cellvoltage2, value=3.930 simple-api.0 2022-03-14 16:05:23.033 debug GET-setBulk for id=javascript.0.Powerbank.Cellvoltage1, oid=Cellvoltage1used=javascript.0.Powerbank.Cellvoltage1, value=3.940 simple-api.0 2022-03-14 16:05:23.032 debug GET-setBulk for id=javascript.0.Powerbank.Packcurrent, oid=Packcurrentused=javascript.0.Powerbank.Packcurrent, value=0.62 simple-api.0 2022-03-14 16:05:23.032 debug GET-setBulk for id=javascript.0.Powerbank.Packvoltage, oid=Packvoltageused=javascript.0.Powerbank.Packvoltage, value=27.55 simple-api.0 2022-03-14 16:05:23.024 debug Values: {"javascript.0.Powerbank.Packvoltage":"27.55","javascript.0.Powerbank.Packcurrent":"0.62","javascript.0.Powerbank.Cellvoltage1":"3.940","javascript.0.Powerbank.Cellvoltage2":"3.930","javascript.0.Powerbank.Cellvoltage3":"3.938","javascript.0.Powerbank.Cellvoltage4":"3
-
@bernd33-1 Hm,
vielleicht überlegen welche der Daten wirklich wichtig sind und in dieser Häufigkeit abgefragt werden müssen. Auch mal nacht alternativen zur Datenerfassung suchen.
-
@bernd33-1 sagte in IOBroker auf RasPi 4 wird immer lahmer:
So alle paar Sekunden
das ist stark untertrieben. Da sind Millisekundenabstände.
Alleine 9 Werte in der 32. Sekunde -
@homoran said in IOBroker auf RasPi 4 wird immer lahmer:
@bernd33-1 sagte in IOBroker auf RasPi 4 wird immer lahmer:
So alle paar Sekunden
das ist stark untertrieben. Da sind Millisekundenabstände.
Alleine 9 Werte in der 32. SekundeJain.... das ist der Simple-API SetBulk transfer. Sollte laut Doku legitim sein. https://github.com/ioBroker/ioBroker.simple-api
@wendy2702 jaja...da muss was anderes her. Vermutlich wird es auf ESPHome und MQTT rauslaufen.
-
Ich denke mal, dass damit mein ursprüngliches Problem geöst ist und keine Datenbank zur Performance Verbesserung nötig ist.
Vielen lieben Dank an alle, die so fix geholfen haben!
-
@bernd33-1 sagte in IOBroker auf RasPi 4 wird immer lahmer:
keine Datenbank zur Performance Verbesserung nötig ist.
as I told
-
Ist jetzt vielleicht nur noch philosophisch aber es erstaunt mich schon etwas, dass die Simple-API kurzfristig so viel CPU-Leistung verlangt, wenn man Daten übergibt. Klar, von meiner PV-Anlage kommen da alle 20 Sekunden 13 Werte aber so viel ist das nun ja auch nicht...... oder?
War halt für die Arduino's immer ziemlich praktisch. Über die Simple-API kann man ohne großen Aufwand mit einem Arduino Werte an den IOBroker übergeben.
-
Was wäre, wenn du nur die simple-api auf einem Slave laufen lassen würdest, dann wäre der Master doch bzgl. der VIS entlastet, oder?
-
@ofbeqnpolkkl6mby5e13 sagte in IOBroker auf RasPi 4 wird immer lahmer:
Was wäre, wenn du nur die simple-api auf einem Slave laufen lassen würdest, dann wäre der Master doch bzgl. der VIS entlastet, oder?
nee,
Es ist ja nicht nur der simple api, der mit ~50% CPU zu Buche schlägt, sondern viel mehr der js-controller, der mit ~134% CPU alles ausbremst.
Der musst die Daten ja auch verwalten, wenn sie vom slave kommen -
@homoran said in IOBroker auf RasPi 4 wird immer lahmer:
@ofbeqnpolkkl6mby5e13 sagte in IOBroker auf RasPi 4 wird immer lahmer:
Was wäre, wenn du nur die simple-api auf einem Slave laufen lassen würdest, dann wäre der Master doch bzgl. der VIS entlastet, oder?
nee,
Es ist ja nicht nur der simple api, der mit ~50% CPU zu Buche schlägt, sondern viel mehr der js-controller, der mit ~134% CPU alles ausbremst.
Der musst die Daten ja auch verwalten, wenn sie vom slave kommenOk, so hab ich mir das auch gedacht. Ist eine 2-Teilige Geschichte.
Nun bin ich am grübeln, wie ich die Daten von Solaranlage, Heizung und Stromspeicher in den IOBroker bekomme. Weil es ist ja nicht nur ein übertragen der Daten sondern auch überwachen, archivieren und verarbeiten. Und da muss ich ja nun alles umbauen. MQTT oder ESPHome sind die Optionen.
Schlimm ist, dass ich vermutlich meine History-Daten so nicht mehr haben werde. Weil die ja nach dem Umbau auf den alten Datenpunkten sitzen werden.
Jetzt wäre wieder eine Datenbank gut Datenbank einrichte, die alten Historydaten in die DB importieren und gut isses. Hört sich einfach an ... Hat jemand ein Skript, dass das alles vollautomatisch macht?
-
@bernd33-1 Leg doch mal ein Simple API issue mit einem Debug log mit aktueller GitHub/Beta Version von simple-api an.
EDIT:
Ich hab reingeschaut ... Naja simple-api arbeitet da sehr ... sagen wir mal ... suboptimal ... und generiert bei sich und in der Objects-DB (und damit dem js.controller) unnötig viel Last ... Debug Log brauch ich keins. Nur issue anlegen bitte. Kann ich mir ansehen -
@bernd33-1 Sag mal ... wie genau sieht denn der setBulk Call aus? Nutzt du da die Object IDs oder Namen ?