NEWS
[Gelöst] Speicherlecks im ioBroker?
-
Liebe ioBroker Gemeinde,
ich versuche es nochmal mein Problem hier zu platzieren.
Seit einigen Monaten habe ich massive Speicherprobleme die sich anscheinend immer mehr verstärken.Zunächst meine System:
ioBroker2 Platform: linux Betriebssystem: linux Architektur: x64 CPUs: 4 Geschwindigkeit: 1385 MHz Modell: Intel(R) Atom(TM) x5-Z8350 CPU @ 1.44GHz RAM: 3.79 GB System Betriebszeit: 9 T. 04:54:01 Node.js: v10.17.0 (Es gibt eine neuere Version: v10.23.0 - Empfohlene Version v12.20.0) NPM: 6.11.3 Festplatte Größe: 52.1 GB Festplatte frei: 44.42 GB Anzahl der Adapter: 322 Betriebszeit: 9 T. 04:53:52 Aktive Instanzen: 23 Hostname: ioBroker2Das Problem ist das ich nach einiger Betriebszeit immer weniger Speicher habe:

Vor ein paar Wochen/Monaten war es noch so, das sich der Speicherverbrauch so über 2-3 Monaten aufgebaut hat. Mittlerweile ist es so das der Speicher beriets nach ca. 10 Tagen von ca. 70% freiem Speicher auf 7% freiem Speicher abbaut.
Wo kann ich anfangen zu suchen? Es scheint für mich so, als ob viele Adapter die ich nutze immer mehr Speicher verbrauchen. Es kann doch nicht sein das ich das System jede Woche rebooten muss damti mir das System nicht plötzlich selber herunterfährt (ist schon passiert).
Schreibe auch schon seit Monaten den Speicherverbrauch der einzelnen Adapter mit. Könnte also hier auch weitere Informationen liefern:

Vielen Dank für eure Hilfe und wertvollen Tips,
Artur
@LoxDUS
Die einzelnen Adapter laufen ja alle in eigenen threads.
Was mir an der Grafik aufgefallen ist, dass die größten Steigerungen über kurze Zeit immer im JavaScript Adapter liegt.
Auch durch Skripte können speicher Lecks entstehen.
Evtl solltest du dir die einzelnen adapter mal separat anschauen und prüfen ob es hier Steigerungen über die Zeit gibt. -
Hallo,
ich habe ioBroker unter Windows 10 auf einem NUC laufen mit 8GB RAM und es wird unter Instanzen das angezeigt:
Datenträger verfügbar: 20.4 %, gesamte RAM-Nutzung: 817 MB / Frei: 5% = 439 MB [Host: NUC - 46 Prozesse]
Auf dem NUC läuft nur ioBroker, ist das normal oder verschwindet da irgendwo etwas?
-
Hallo,
ich habe ioBroker unter Windows 10 auf einem NUC laufen mit 8GB RAM und es wird unter Instanzen das angezeigt:
Datenträger verfügbar: 20.4 %, gesamte RAM-Nutzung: 817 MB / Frei: 5% = 439 MB [Host: NUC - 46 Prozesse]
Auf dem NUC läuft nur ioBroker, ist das normal oder verschwindet da irgendwo etwas?
@Ritter Und wo ist jetzt der Bezug zum Problem des Threaderstellers? Mach für dein Windooze-Problem einen eigenen Thread auf.
-
Liebe ioBroker Gemeinde,
ich versuche es nochmal mein Problem hier zu platzieren.
Seit einigen Monaten habe ich massive Speicherprobleme die sich anscheinend immer mehr verstärken.Zunächst meine System:
ioBroker2 Platform: linux Betriebssystem: linux Architektur: x64 CPUs: 4 Geschwindigkeit: 1385 MHz Modell: Intel(R) Atom(TM) x5-Z8350 CPU @ 1.44GHz RAM: 3.79 GB System Betriebszeit: 9 T. 04:54:01 Node.js: v10.17.0 (Es gibt eine neuere Version: v10.23.0 - Empfohlene Version v12.20.0) NPM: 6.11.3 Festplatte Größe: 52.1 GB Festplatte frei: 44.42 GB Anzahl der Adapter: 322 Betriebszeit: 9 T. 04:53:52 Aktive Instanzen: 23 Hostname: ioBroker2Das Problem ist das ich nach einiger Betriebszeit immer weniger Speicher habe:

Vor ein paar Wochen/Monaten war es noch so, das sich der Speicherverbrauch so über 2-3 Monaten aufgebaut hat. Mittlerweile ist es so das der Speicher beriets nach ca. 10 Tagen von ca. 70% freiem Speicher auf 7% freiem Speicher abbaut.
Wo kann ich anfangen zu suchen? Es scheint für mich so, als ob viele Adapter die ich nutze immer mehr Speicher verbrauchen. Es kann doch nicht sein das ich das System jede Woche rebooten muss damti mir das System nicht plötzlich selber herunterfährt (ist schon passiert).
Schreibe auch schon seit Monaten den Speicherverbrauch der einzelnen Adapter mit. Könnte also hier auch weitere Informationen liefern:

Vielen Dank für eure Hilfe und wertvollen Tips,
Artur
@LoxDUS Ne ganz blöde Frage: Kannst du den Speicher erhöhen?
Ich habe den Effekt beobachtet das bei mir der Speicher bis 4 GB zugeschrieben wird und das sich dann dort einpendelt. Wenn ich meinem CT nur 4 GB zuordne habe ich die gleichen Probleme wie du. Sobald ich aber 4,5 GB zuordne ist der Effekt weg.Ich habe keinerlei Ahnung wie Linux oder der ioBroker den Speicher verwaltet. Mir ist auch nicht klar warum das so ist. Aber ich kann das zu 100% reproduzieren. Deshalb läuft der CT jetzt eben mit 4,5 GB.
-
@LoxDUS Ne ganz blöde Frage: Kannst du den Speicher erhöhen?
Ich habe den Effekt beobachtet das bei mir der Speicher bis 4 GB zugeschrieben wird und das sich dann dort einpendelt. Wenn ich meinem CT nur 4 GB zuordne habe ich die gleichen Probleme wie du. Sobald ich aber 4,5 GB zuordne ist der Effekt weg.Ich habe keinerlei Ahnung wie Linux oder der ioBroker den Speicher verwaltet. Mir ist auch nicht klar warum das so ist. Aber ich kann das zu 100% reproduzieren. Deshalb läuft der CT jetzt eben mit 4,5 GB.
@Chaot sagte in Speicherlecks im ioBroker?:
Ich habe keinerlei Ahnung wie Linux
oder der ioBrokerden Speicher verwaltet. -
@Ritter Und wo ist jetzt der Bezug zum Problem des Threaderstellers? Mach für dein Windooze-Problem einen eigenen Thread auf.
@Thomas-Braun sagte in Speicherlecks im ioBroker?:
@Ritter Und wo ist jetzt der Bezug zum Problem des Threaderstellers? Mach für dein Windooze-Problem einen eigenen Thread auf.
Ist doch auch ein Speicherproblem. Vielleicht kanns ja jemand löschen ich kanns nicht.
-
@Chaot sagte in Speicherlecks im ioBroker?:
Ich habe keinerlei Ahnung wie Linux
oder der ioBrokerden Speicher verwaltet. -
@LoxDUS Ne ganz blöde Frage: Kannst du den Speicher erhöhen?
Ich habe den Effekt beobachtet das bei mir der Speicher bis 4 GB zugeschrieben wird und das sich dann dort einpendelt. Wenn ich meinem CT nur 4 GB zuordne habe ich die gleichen Probleme wie du. Sobald ich aber 4,5 GB zuordne ist der Effekt weg.Ich habe keinerlei Ahnung wie Linux oder der ioBroker den Speicher verwaltet. Mir ist auch nicht klar warum das so ist. Aber ich kann das zu 100% reproduzieren. Deshalb läuft der CT jetzt eben mit 4,5 GB.
-
@Chaot sagte in Speicherlecks im ioBroker?:
Aber warum hört der Effekt auf sobald ich mehr als 4 GB zuordne?
Gute Frage - erinnert mich an alte WIN Programme, die zu wenig Speicher monierten, obwohl so viel Speicher vorhanden war, dass diese Programme ihn wohl nicht adressieren konnten.
-
@LoxDUS
Die einzelnen Adapter laufen ja alle in eigenen threads.
Was mir an der Grafik aufgefallen ist, dass die größten Steigerungen über kurze Zeit immer im JavaScript Adapter liegt.
Auch durch Skripte können speicher Lecks entstehen.
Evtl solltest du dir die einzelnen adapter mal separat anschauen und prüfen ob es hier Steigerungen über die Zeit gibt.@OliverIO
Ich habe schon mehrfach versucht den javascript adapter neu zu starten. Wenn ich die Instanz beende erhöht sich der freie Speicher um ca. 4 bis 5% (von 7% auf 11%).
Ich habe das heute gegen Moittag nochmal gemacht.

In diesem Ausschnitt sieht man auch wie andere Adapter mit der Zeit immer mehr Speicher brauchen. Ich meine die Sägezahnkurve ist ja bei Java normal. Irgendwann schlägt der "Garbage-Collector" zu und räumt auf. ich habe aber das Gefühl das der nciht alles "aufgeräumt" bekommt. -
@LoxDUS Ne ganz blöde Frage: Kannst du den Speicher erhöhen?
Ich habe den Effekt beobachtet das bei mir der Speicher bis 4 GB zugeschrieben wird und das sich dann dort einpendelt. Wenn ich meinem CT nur 4 GB zuordne habe ich die gleichen Probleme wie du. Sobald ich aber 4,5 GB zuordne ist der Effekt weg.Ich habe keinerlei Ahnung wie Linux oder der ioBroker den Speicher verwaltet. Mir ist auch nicht klar warum das so ist. Aber ich kann das zu 100% reproduzieren. Deshalb läuft der CT jetzt eben mit 4,5 GB.
-
@Chaot
... hm, was mir noch einfällt: Viele ioBroker Instanzen laufen doch auch auf kleinen Raspberries mit z.T. nur 2GByte RAM. Mein Bekannt nutzt auch ioBroker mit dem gleichen NUC wie ich und der hat keinerlei Speicherprobleme. -
artur@ioBroker2:~$ free -h total used free shared buff/cache available Mem: 3,8Gi 3,2Gi 420Mi 6,0Mi 184Mi 387Mi Swap: 3,9Gi 79Mi 3,9Gi artur@ioBroker2:~$ who -r Runlevel 5 2020-12-17 06:45 artur@ioBroker2:~$ node -v v10.17.0 artur@ioBroker2:~$ nodejs -v v10.17.0 artur@ioBroker2:~$ -
artur@ioBroker2:~$ free -h total used free shared buff/cache available Mem: 3,8Gi 3,2Gi 420Mi 6,0Mi 184Mi 387Mi Swap: 3,9Gi 79Mi 3,9Gi artur@ioBroker2:~$ who -r Runlevel 5 2020-12-17 06:45 artur@ioBroker2:~$ node -v v10.17.0 artur@ioBroker2:~$ nodejs -v v10.17.0 artur@ioBroker2:~$@LoxDUS
siehe meine Anmerkungen von oben.
RunLevel 3 fahren, node 12 sauber installieren. -
@LoxDUS
siehe meine Anmerkungen von oben.
RunLevel 3 fahren, node 12 sauber installieren.Werde das jetzt mal auf meinem "Backupsystem" ausprobieren. Melde mich wenn ich was neues habe...
-
Hallo,
ich habe ioBroker unter Windows 10 auf einem NUC laufen mit 8GB RAM und es wird unter Instanzen das angezeigt:
Datenträger verfügbar: 20.4 %, gesamte RAM-Nutzung: 817 MB / Frei: 5% = 439 MB [Host: NUC - 46 Prozesse]
Auf dem NUC läuft nur ioBroker, ist das normal oder verschwindet da irgendwo etwas?
@Ritter Bei Windows geht die Spangezeigte Speichernutzung immer rauf. Und irgendwann kommt der Garbage Collector oder sowas und räumt wieder auf. Dann gibt es wieder mehr freien Speicher udn das ganze Spiel beginnt von Neuem.
Wenn Du keine sichtbaren Probleme hast, dann Lass Windows nur machen, das kann das schon. Mein ioBroker läuft sehr stabil unter Win 10. Habe den Info Adapter mittlerweile pausiert und mache mir einfach keine Sorgen mehr. -
@LoxDUS
siehe meine Anmerkungen von oben.
RunLevel 3 fahren, node 12 sauber installieren.Habe jetzt den Runlevel mit
systemctl set-default multi-user.targetauf das "alte" Runlevel 3 gestellt und nodejs geupdatet
artur@ioBroker:~$ nodejs -v v12.20.0Der aktuelle Speicherverbrauch liegt laut ioBroker bei:

also es sind ca. 66% freiartur@ioBroker:~$ free -m total used free shared buff/cache available Mem: 3885 1213 2189 6 482 2439 Swap: 4027 0 4027 artur@ioBroker:~$ who -r Runlevel 3 2020-12-27 00:18 artur@ioBroker:~$ node -v v12.20.0 artur@ioBroker:~$ nodejs -v v12.20.0 artur@ioBroker:~$Bin jetzt mal gespannt wie der Speicher morgen aussieht ;-)
-
Habe jetzt den Runlevel mit
systemctl set-default multi-user.targetauf das "alte" Runlevel 3 gestellt und nodejs geupdatet
artur@ioBroker:~$ nodejs -v v12.20.0Der aktuelle Speicherverbrauch liegt laut ioBroker bei:

also es sind ca. 66% freiartur@ioBroker:~$ free -m total used free shared buff/cache available Mem: 3885 1213 2189 6 482 2439 Swap: 4027 0 4027 artur@ioBroker:~$ who -r Runlevel 3 2020-12-27 00:18 artur@ioBroker:~$ node -v v12.20.0 artur@ioBroker:~$ nodejs -v v12.20.0 artur@ioBroker:~$Bin jetzt mal gespannt wie der Speicher morgen aussieht ;-)
@LoxDUS Warum ist dein swap file eigentlich so groß? Das ist ja mehr als dein RAM? Ich hab das bei mir auf 100 MB laufen:
pi@raspberrypi:/opt/iobroker $ free -h total used free shared buff/cache available Mem: 3,8Gi 895Mi 2,1Gi 9,0Mi 783Mi 3,0Gi Swap: 99Mi 0B 99Mi -
@LoxDUS Warum ist dein swap file eigentlich so groß? Das ist ja mehr als dein RAM? Ich hab das bei mir auf 100 MB laufen:
pi@raspberrypi:/opt/iobroker $ free -h total used free shared buff/cache available Mem: 3,8Gi 895Mi 2,1Gi 9,0Mi 783Mi 3,0Gi Swap: 99Mi 0B 99Mi@Thomas-Braun sagte in Speicherlecks im ioBroker?:
@LoxDUS Warum ist dein swap file eigentlich so groß? Das ist ja mehr als dein RAM? Ich hab das bei mir auf 100 MB laufen:
Swap-Partition unter Linux sollte ca. doppelt so groß wie der RAM sein. Das ist doch der Sinn einer Swap-Partition, dass der Inhalt des RAM auf die Festplatte ausgelagert werden kann.
-
@Thomas-Braun sagte in Speicherlecks im ioBroker?:
@LoxDUS Warum ist dein swap file eigentlich so groß? Das ist ja mehr als dein RAM? Ich hab das bei mir auf 100 MB laufen:
Swap-Partition unter Linux sollte ca. doppelt so groß wie der RAM sein. Das ist doch der Sinn einer Swap-Partition, dass der Inhalt des RAM auf die Festplatte ausgelagert werden kann.
@a200 Ja, in alten Zeiten war das mal die Faustregel. Mach ich aber bei Systemen mit mehr als 2GB RAM nicht mehr.
