NEWS
Speicherverbrauch durch im Admin UI aufgeblähte Objekte
-
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
iobroker neu gestartet
passt!
in ein, zwei Minuten sollte es weniger sein. -
@thomas_ weil der Adapter gerade alle states abonniert
aber 1,3 GB RAM kommt mir etwas viel vor -
ja, mir ja auch ^^
und weniger als 700 MB werden es nicht:
-
Jetzt hab ich es mal zum Test auf einem anderen debian Server installiert, der mehr RAM hat, aber der Verbrauch ist ja genau der gleiche:
2347370 iobroker 819.41 MiB io.admin.0 2347431 iobroker 76.58 MiB io.backitup.0 2351527 iobroker 865.33 MiB io.javascript.0 2351574 iobroker 76.55 MiB io.openknx.0 2347340 iobroker 1.42 GiB iobroker.js-controller
Dann scheint das wohl so normal zu sein?
-
@thomas_
Dann scheint das wohl so normal zu sein?
Nein. Ich habe ca. die zehnfache Anzahl der Objekte, bei nur ca. einem Zehntel Speicherverbrauch.
Wie sieht der Speicher bei frisch installiertem ioBroker aus?
-
@marc-berg das ist beides ein frisch installierter iobroker
Der erste, kleinere PC, 4-5 Tage alt.
Bei dem zweiten Server habe ich im Prinzip nur die Objekte importiert. Aber sonst hab ich ja eh nichts am Laufen... CPU Auslastung ist ja auch Null. -
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
das ist beides ein frisch installierter iobroker
nein!
da sind schon weitere Adapter installiert und aktiv -
Danke für euer aller Mühen, aber: so kommen wir ja nicht wirklich weiter.
Ich hatte auf einen wertvollen Tipp gehofft, von den iobroker Profis - mit dem Betriebssystem usw kenne ich mich ja selber aus. Kann doch nicht sein, dass ich der erste/einzige mit so einem Phänomen bin, dachte ich mir (wobei ich beim googlen auch nichts gefunden habe) - schließlich habe ich ja im Sinne des Systems kaum etwas eingerichtet. Offenbar gibt es auch keine weitergehenden Debug Möglichkeiten, sonst hätte sie wohl jemand schon genannt.
Inzwischen habe ich schon versucht, den controller mit den Chrome Dev Tools und einem SSH Tunnel remote zu debuggen, damit ich mal die Objektstrukturen und deren Speicherverbrauch anschauen kann, dann hätte ich mal in den Code schauen können und das Problem vielleicht so gefunden - aber beim Erstellen des Heap Snapshots bricht der iob Controller immer zusammen - ganz ohne Meldung, leider. Einmal hat er 89% geschafft.. Sehr seltsam.
Das Einzige, was bleibt, ist dann natürlich - wie immer bei Blackboxen - Trial & Error. Also alles nochmal von vorne neu einrichten und schauen, ab wann der Fehler kommt. Darauf scheint ihr jetzt auch hinaus zu wollen, lese ich heraus.
-
@thomas_
Mal im Ernst. Du willst Hilfe, weist aber alles besser.@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
klar reicht der! Es geht ja auch um die Speicherbelegung
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
Das erste liest alle 5 Minuten eine URL aus, die eine Zahl ausspuckt und schreibt die Zahl auf den KNX Bus
Das zweite hat 5 ON-Events drin, aus dem Modus und würde auch die ins KNX schreiben, aber der Modbus Adapter ist ja deaktiviert - das tut also gar nichtsDir wurde ja gesagt woran es evtl. liegen könnte
@paul53 sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
Da läuft offenbar mind. ein Skript Amok.
Was ich aber nicht sehe, sind die besagten Skripte, die sich ein "Wissender" mal genau ansehen könnte, zumal in den Skripten ja teils (deaktivierte) Adapter enthalten sind. Auch Logs zu den Skripten sehe ich bisher nicht.
@marc-berg sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
Nein. Ich habe ca. die zehnfache Anzahl der Objekte, bei nur ca. einem Zehntel Speicherverbrauch.
Wie sieht der Speicher bei frisch installiertem ioBroker aus?
Auch zu diesem Hinweis sehe ich keine Reaktion in Form von aktuellen Screenshots oder what ever.
Ich bin sicher nicht der, der das alles beurteilen kann, das wäre wohl anmaßend. Wie soll aber bitte jemand helfen, wenn auf Nachfrage/Hinweis keine geeigneten Infos kommen?
-
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
so kommen wir ja nicht wirklich weiter.
dann liefer doch die notwendigen Infos, damit wir
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
einen wertvollen Tipp
geben können.
Das geht nur, wenn man mehr Eckdaten hat, um die Ursache eingrenzen zu können.
-
Jetzt seid nicht so zickig. Den Rest schaffe ich erst mal allein - ich halte euch auf dem Laufenden.
P.S.:
Und lasst meinen Mini PC in Ruhe. Der kann das ganz leichtHier soll ja keine Rakete gestartet werden.
-
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
Jetzt seid nicht so zickig.
hier ist keiner zickig!
Nur ohne Infos kann niemand helfen.
Und mehr als wiederholt nachfragen können wir nicht, auch wenn dann wieder keine Antwort kommt.Die Deluxe Glaskugeln sind leider zu teuer für mich.
-
@marc-berg said in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
@thomas_
Dann scheint das wohl so normal zu sein?
Nein. Ich habe ca. die zehnfache Anzahl der Objekte, bei nur ca. einem Zehntel Speicherverbrauch.
Wie sieht der Speicher bei frisch installiertem ioBroker aus?
So ganz mag ich Dir das nicht glauben...
das wären ja bei
Oder: Braucht das eigentlich nackte iobroker schon über 3GB RAM?!
nur 300 MB für Deinen kompletten ioBroker ...
Mein noch langsameres System (siehe Signatur):
martin@iobroker-test-sicher:~$ free -m total used free shared buff/cache available Mem: 6144 1986 2801 0 1356 4157 Swap: 6144 27 6116 martin@iobroker-test-sicher:~$
Kann das vielleicht davon abhängen, ob man die Datenpunkte / Stati intern im ioBroker speichert oder extern?
-
@martinp kannst du mir bitte noch sagen, wie viel RAM bei dir der controller selber braucht? also der Prozess iobroker.js-con
-
@thomas_
Tasks: 36 total, 1 running, 35 sleeping, 0 stopped, 0 zombie %Cpu(s): 17.8 us, 10.4 sy, 0.0 ni, 67.4 id, 0.3 wa, 0.0 hi, 0.5 si, 0.0 st MiB Mem : 6144.0 total, 2829.1 free, 1955.0 used, 1359.8 buff/cache MiB Swap: 6144.0 total, 6116.6 free, 27.4 used. 4189.0 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 366 iobroker 20 0 11.2g 368468 44928 S 10.3 5.9 13,27 iobroker.js-con 497 iobroker 20 0 1077368 211008 37760 S 6.6 3.4 7,29 io.sonoff.0 410 iobroker 20 0 998764 134272 37760 S 4.6 2.1 7,39 io.influxdb.0 429 iobroker 20 0 1025376 188608 43392 S 3.3 3.0 272:39.33 io.javascript.0
-
Habe jetzt nebenbei angefangen, zu testen. Neu installiert und alles ist leer. Kein Adapter, nichts.
Martin hat ein laufendes System mit 362 MB Verbrauch beim controller.
Bei mir braucht der controller ganz nackt 255 MB.43446 iobroker 118.77 MiB io.admin.0 43485 iobroker 78.56 MiB io.backitup.0 43503 iobroker 69.3 MiB io.discovery.0 43268 iobroker 255.23 MiB iobroker.js-controller
installiere ich dann nur den javascript Adapter, dann bin ich schon bei 452.
43446 iobroker 126.75 MiB io.admin.0 43485 iobroker 79.01 MiB io.backitup.0 43503 iobroker 70.32 MiB io.discovery.0 44706 iobroker 136.44 MiB io.javascript.0 43268 iobroker 452.73 MiB iobroker.js-controller
nach Installation von openknx sieht es so aus
43446 iobroker 126.69 MiB io.admin.0 43485 iobroker 78.87 MiB io.backitup.0 43503 iobroker 70.79 MiB io.discovery.0 44706 iobroker 137.16 MiB io.javascript.0 45167 iobroker 74.15 MiB io.openknx.0 43268 iobroker 428.2 MiB iobroker.js-controller
nach dem Import der Gruppenadressen ändert sich nicht viel. nun 10XX Objekte.
RAM Auslastung gleich geblieben. So weit so gut!Modbus installiert und dann gehts auf einmal stark nach oben im Controller und das bleibt auch so:
43446 iobroker 162.98 MiB io.admin.0 43485 iobroker 79.99 MiB io.backitup.0 43503 iobroker 71.31 MiB io.discovery.0 44706 iobroker 140.34 MiB io.javascript.0 45853 iobroker 71.99 MiB io.modbus.0 45402 iobroker 82.3 MiB io.openknx.0 45506 iobroker 81.64 MiB io.openknx.0 43268 iobroker 953.04 MiB iobroker.js-controller
Dann wollte ich eine Abkürzung nehmen und mein Backup einspielen, um modbus zu deinstallieren.
Das Backup konnte ich aber erst einspielen, nachdem die 4GB RAM von Amazon da waren...
Vorher: JavaScript heap out of memory (Das gesamte Backup ist ja ein einziges JSON Objekt. Hui)Es liefen dann erst mal nur die drei:
4352 iobroker 941.7 MiB io.admin.0 4404 iobroker 74.42 MiB io.backitup.0 4326 iobroker 1.3 GiB iobroker.js-controller
Und nun habe ich erst modbus deinstalliert, dann alles andere, bis auf openknx. Aber keine Änderung mehr.
Es bleibt also offenbar nach Deinstallation von Adaptern noch was im Controller "liegen".
Und ob es an modbus alleine liegt, weiß ich jetzt auch nicht.Hier steht er jetzt:
5200 iobroker 762.28 MiB io.admin.0 5303 iobroker 76.01 MiB io.backitup.0 5252 iobroker 82.54 MiB io.openknx.0 5151 iobroker 1.12 GiB iobroker.js-controller
Jetzt muss ich wieder von vorne anfangen aber meine Zeit für heute ist erst mal um
-
Ich habs gefunden! Da ist irgendwo ein Bug in der Admin UI im Zusammenspiel mit dem SQL Adapter! Ziemlich sicher bei der Aktion "alle Zustände bearbeiten".
Und wahrscheinlich nur beim USERDATA Ast.Habe mir die Backup Datei angesehen, dort hab ich es gesehen. Da steht in den ganzen Objekten folgendes drin.
Auf der Oberfläche steht es auch drin wenn man die die Objekte in der JSON Ansicht aufmacht.
Da sollte eigentlich einfach "debounce": 1000 stehen. Stattdessen wird dort eingetragen:
"debounce": [ 0, [ 0, [ 0, 1000 ], [ 0, 1000 ], ... 34 Millionen Zeilen (!!!) später ... [ 0, 1000 ], 1000 ], 1000 ]
-
Jetzt bin ich insgesamt auf knapp 1 GB RAM runter. Und schon reicht er wieder, mein PC
-
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
in der Admin UI im Zusammenspiel mit dem SQL Adapter!
hast du alle nodes in den Objekten aufgeklappt?
-
@homoran said in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
@thomas_ sagte in Hardware Voraussetzungen bzw. Speicherverbrauch iobroker:
in der Admin UI im Zusammenspiel mit dem SQL Adapter!
hast du alle nodes in den Objekten aufgeklappt?
ja, habe ich. Alles states gefiltert, um einzutragen, dass sie geloggt werden sollen. aber anstatt der 1000 hat er bei jedem Objekt ein array aus 4 mio mal [0,1000] eingetragen. Aber nur im USERDATA Ast (14 Objekte) war es falsch. Im ganzen KNX Ast (1000 Objekte ca.) ist es überall richtig eingetragen worden.