Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. [Gelöst] Speicherlecks im ioBroker?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Gelöst] Speicherlecks im ioBroker?

Geplant Angeheftet Gesperrt Verschoben Gelöst Error/Bug
speicherverbrauchadapter speicherverbrauch
51 Beiträge 10 Kommentatoren 4.9k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L LoxDUS

    Erst mal vielen Dank an @Thomas-Braun und @OliverIO !
    Meine Speicherlecks kommen sicherlich aus meinen Javascript Programmen.
    So wie ich es jetzt verstehe ist/war das Problem das die Speicherlecks durch die z.T. fehlerhafte Nutzung von Timer Funktionen entstehen. Es werden Objekte erzeugt die plötzlich keine Referenz mehr haben und auch durch den Garbagne Collector nicht gefunden werden. Dadurch wird immer mehr Speicher verbraucht. Aktuell sieht es "normal aus"
    fb0add06-9372-4dba-a7e1-f9c7000716aa-image.png
    Ca. in der Mitte des Diagramms bin ich auf mein "Fallbacksystem" mit den zusätzlichen Einstellungen die mir @Thomas-Braun empfohlen hat (Runlevel ändern) umgezogen ca. 11Uhr. Da sich der Speicherverbrauch aber trotzdem gesteigert hat (Man sieht das an der roten Linie (io.Javascript) dort versucht der garbage Collector ein paar mal aufzuräumen) habe ich dann um ca. 0:00Uhr viele meiner Javascript Programm gestoppt. Seit dem Zeitpunkt ist es recht ruhig in dem Javascript-Instanzen geworden (schöne glatte Linie). über "htop" sehe ich das sich der io.Javascript Prozess nicht mehr Speicher klaut und stabil ist. Das System ist jetzt seit einigen Stunden bei ca. 26% freiem Speicher 🙂 :

    Ich werde später ioBroker nochmal neu durchstarten und dann Schritt für Schritt die ganzen Javascripte nach möglichen Speicherlecks durchforsten und korrigieren.

    Vielleicht noch eine letzte Frage:
    Wie löst ihr das in euren Programmen wenn ihr retriggerbare Timer für z.B. Lichter im Treppenhaus die nach einer gewissen Zeit wieder ausgehen sollen, aber immer wieder neu getriggert werden sollen?

    Vielen Dank nachmal an alle Mitwirkenden.

    Artur

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #38

    @LoxDUS
    Ich selbst habe ganz wenig Skripte.
    Allerdings verwende ich in meinen Adapter einige Timer.
    Das wichtigste ist, alle Timer nach Gebrauch oder auch beim beenden des programs/Skript aufzuräumen
    Dadurch sorgst du, das Objekte oder Funktionen, die an den Timer gebunden sind, definitiv in den timerfunktionen aufgeräumt werden und zumindest dort keine Referenzen mehr existieren.

    Hier mal noch ein weiterer Artikel auch mit ein paar Code Beispielen.
    https://blog.appsignal.com/2020/05/06/avoiding-memory-leaks-in-nodejs-best-practices-for-performance.html

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    L 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @LoxDUS
      Ich selbst habe ganz wenig Skripte.
      Allerdings verwende ich in meinen Adapter einige Timer.
      Das wichtigste ist, alle Timer nach Gebrauch oder auch beim beenden des programs/Skript aufzuräumen
      Dadurch sorgst du, das Objekte oder Funktionen, die an den Timer gebunden sind, definitiv in den timerfunktionen aufgeräumt werden und zumindest dort keine Referenzen mehr existieren.

      Hier mal noch ein weiterer Artikel auch mit ein paar Code Beispielen.
      https://blog.appsignal.com/2020/05/06/avoiding-memory-leaks-in-nodejs-best-practices-for-performance.html

      L Offline
      L Offline
      LoxDUS
      schrieb am zuletzt editiert von
      #39

      @OliverIO
      Ich habe jetzt meine Scripte komplett aufgeräumt. Dabei ist mir aufgefallen das ich an vielen Stellen gerade die ganzen Timerobjekte nicht vernünftig mit clearTimeout() aufgeräumt habe. So habe ich glaube ich viele Objekte ins Nirvana geschickt und dort haben die sich im Speicher festgebissen.

      Ich habe jetzt alle Scripte wieder am laufen und der Speicher dümpelt seit Stunden mit 66% frei vor sich hin.
      83a03b7d-c28e-419e-aebc-2f3f0a2daed5-image.png

      d8d890bb-8d35-4488-b66e-2ed5a1ec2403-image.png
      (Die große Lücke kommt daher weil der SQL Datenbank zwischenzeitlich ausgestiegen ist weil ich den ioBroker neu gestartet hatte)

      Vielen Dank nochmal für die nützlichen Hinweise.

      Viele Grüße,

      Artur

      K 1 Antwort Letzte Antwort
      2
      • L LoxDUS

        @OliverIO
        Ich habe jetzt meine Scripte komplett aufgeräumt. Dabei ist mir aufgefallen das ich an vielen Stellen gerade die ganzen Timerobjekte nicht vernünftig mit clearTimeout() aufgeräumt habe. So habe ich glaube ich viele Objekte ins Nirvana geschickt und dort haben die sich im Speicher festgebissen.

        Ich habe jetzt alle Scripte wieder am laufen und der Speicher dümpelt seit Stunden mit 66% frei vor sich hin.
        83a03b7d-c28e-419e-aebc-2f3f0a2daed5-image.png

        d8d890bb-8d35-4488-b66e-2ed5a1ec2403-image.png
        (Die große Lücke kommt daher weil der SQL Datenbank zwischenzeitlich ausgestiegen ist weil ich den ioBroker neu gestartet hatte)

        Vielen Dank nochmal für die nützlichen Hinweise.

        Viele Grüße,

        Artur

        K Offline
        K Offline
        klassisch
        Most Active
        schrieb am zuletzt editiert von
        #40

        @LoxDUS vielen Dank für die schöne Aufarbeitung und die Rückmeldung.
        Jetzt habe ich wenigstens eine Ahnung davon, was das clearTimeout soll. Habe das bisher nur nachgeplappert. Allerdings wohl auch nicht so streng, in manchen Skripten fehlt es noch. Da muß ich wohl nochmals ran.

        HomoranH 1 Antwort Letzte Antwort
        0
        • K klassisch

          @LoxDUS vielen Dank für die schöne Aufarbeitung und die Rückmeldung.
          Jetzt habe ich wenigstens eine Ahnung davon, was das clearTimeout soll. Habe das bisher nur nachgeplappert. Allerdings wohl auch nicht so streng, in manchen Skripten fehlt es noch. Da muß ich wohl nochmals ran.

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #41

          @klassisch sagte in Speicherlecks im ioBroker?:

          Jetzt habe ich wenigstens eine Ahnung davon, was das clearTimeout soll.

          das Problem ist, dass wenn der Timeout öfters gestartet wird kann ein clear timeout den Timeout nicht mehr stoppen, weil ja mehrere laufen

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          K 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @klassisch sagte in Speicherlecks im ioBroker?:

            Jetzt habe ich wenigstens eine Ahnung davon, was das clearTimeout soll.

            das Problem ist, dass wenn der Timeout öfters gestartet wird kann ein clear timeout den Timeout nicht mehr stoppen, weil ja mehrere laufen

            K Offline
            K Offline
            klassisch
            Most Active
            schrieb am zuletzt editiert von
            #42

            @Homoran Bei mir waren es Zeitverzögerungen ("Monoflops"), die allerdings nur selten gestartet wurde. einmal am Tag, einmal alle paar Tage oder Wochen. Bei 8GB merkt man da nichts.

            HomoranH 1 Antwort Letzte Antwort
            0
            • K klassisch

              @Homoran Bei mir waren es Zeitverzögerungen ("Monoflops"), die allerdings nur selten gestartet wurde. einmal am Tag, einmal alle paar Tage oder Wochen. Bei 8GB merkt man da nichts.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #43

              @klassisch sagte in Speicherlecks im ioBroker?:

              Bei 8GB merkt man da nichts.

              entscheidend ist, dass

              @klassisch sagte in Speicherlecks im ioBroker?:

              allerdings nur selten gestartet wurde

              Und damit die Wahrscheinlichkeit, dass der Timeout vor dem nächsten Aufruf beendet ist, gegen 100% geht.

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • Thomas BraunT Thomas Braun

                @a200 Ja, in alten Zeiten war das mal die Faustregel. Mach ich aber bei Systemen mit mehr als 2GB RAM nicht mehr.

                a200A Offline
                a200A Offline
                a200
                schrieb am zuletzt editiert von
                #44

                @Thomas-Braun sagte in Speicherlecks im ioBroker?:

                @a200 Ja, in alten Zeiten war das mal die Faustregel. Mach ich aber bei Systemen mit mehr als 2GB RAM nicht mehr.

                Na dann viel Spaß mit hibernate, vor allem dann, wenn du neben swap nur noch eine Partition für dein FS nutzt.

                IoBroker auf QNAP TS-451, Raspi und NUC

                Thomas BraunT 1 Antwort Letzte Antwort
                0
                • a200A a200

                  @Thomas-Braun sagte in Speicherlecks im ioBroker?:

                  @a200 Ja, in alten Zeiten war das mal die Faustregel. Mach ich aber bei Systemen mit mehr als 2GB RAM nicht mehr.

                  Na dann viel Spaß mit hibernate, vor allem dann, wenn du neben swap nur noch eine Partition für dein FS nutzt.

                  Thomas BraunT Online
                  Thomas BraunT Online
                  Thomas Braun
                  Most Active
                  schrieb am zuletzt editiert von
                  #45

                  @a200 Hier wird nix in hibernate geschickt, von daher für mich entbehrlich.

                  Linux-Werkzeugkasten:
                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                  NodeJS Fixer Skript:
                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                  L 1 Antwort Letzte Antwort
                  0
                  • Thomas BraunT Thomas Braun

                    @a200 Hier wird nix in hibernate geschickt, von daher für mich entbehrlich.

                    L Offline
                    L Offline
                    LoxDUS
                    schrieb am zuletzt editiert von
                    #46

                    Ich werde wahnsinnig !!!
                    Habe gerade nochmal in den Speicherverbrauch reingeschaut:

                    2af98b57-21f2-477f-a882-6ea346c7b707-image.png
                    Nach der Überarbeitung der Scripte ist es zwar viel ruhiger geworden im Vergleich zu den Speicheraktivitäten (siehe ganz oben in diesem Thema) noch vor ca. 2 Tagen, nun fällt aber auf das der Speicher insgesamt also nicht nur der io.Javascript sondern auch z.B. der shelly, der systeminfo, eigentlich quasi alle Instanzen immer mehr Speicher brauchen. Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                    Vielleicht mache ich mich da ja auch verrückt und Linux holt sich gerade viele Dinge in seinen Speicher rein damit sich die Prozesse wohlfühlen aber ich werde schon wieder nervös wenn ich sehe das mein Speicher wieder nur zu ca. 27% frei ist.

                    40820fb4-cf70-41bb-b225-c6f1bfea2dc5-image.png

                    Ich werde ioBroker jetzt nochmal neu starten und mir die Speicherverläufe der nächsten Tage nochmal ansehen.

                    K liv-in-skyL Dr. BakteriusD 3 Antworten Letzte Antwort
                    0
                    • L LoxDUS

                      Ich werde wahnsinnig !!!
                      Habe gerade nochmal in den Speicherverbrauch reingeschaut:

                      2af98b57-21f2-477f-a882-6ea346c7b707-image.png
                      Nach der Überarbeitung der Scripte ist es zwar viel ruhiger geworden im Vergleich zu den Speicheraktivitäten (siehe ganz oben in diesem Thema) noch vor ca. 2 Tagen, nun fällt aber auf das der Speicher insgesamt also nicht nur der io.Javascript sondern auch z.B. der shelly, der systeminfo, eigentlich quasi alle Instanzen immer mehr Speicher brauchen. Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                      Vielleicht mache ich mich da ja auch verrückt und Linux holt sich gerade viele Dinge in seinen Speicher rein damit sich die Prozesse wohlfühlen aber ich werde schon wieder nervös wenn ich sehe das mein Speicher wieder nur zu ca. 27% frei ist.

                      40820fb4-cf70-41bb-b225-c6f1bfea2dc5-image.png

                      Ich werde ioBroker jetzt nochmal neu starten und mir die Speicherverläufe der nächsten Tage nochmal ansehen.

                      K Offline
                      K Offline
                      klassisch
                      Most Active
                      schrieb am zuletzt editiert von
                      #47

                      @LoxDUS Warte es einfach mal ab. Wie oben schon geschrieben, bei meinem Windows-ioBroker System geht es immer auf und ab.
                      Ist zwar Win, aber andere werden das Speichermanagement auch nicht so viel anders machen. Man macht es sich erst mal einfach und nimmt was da da ist, solange noch was da ist. Wenn es eng wird, dann wird man aktiv und räumt auf.

                      1 Antwort Letzte Antwort
                      0
                      • L LoxDUS

                        Ich werde wahnsinnig !!!
                        Habe gerade nochmal in den Speicherverbrauch reingeschaut:

                        2af98b57-21f2-477f-a882-6ea346c7b707-image.png
                        Nach der Überarbeitung der Scripte ist es zwar viel ruhiger geworden im Vergleich zu den Speicheraktivitäten (siehe ganz oben in diesem Thema) noch vor ca. 2 Tagen, nun fällt aber auf das der Speicher insgesamt also nicht nur der io.Javascript sondern auch z.B. der shelly, der systeminfo, eigentlich quasi alle Instanzen immer mehr Speicher brauchen. Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                        Vielleicht mache ich mich da ja auch verrückt und Linux holt sich gerade viele Dinge in seinen Speicher rein damit sich die Prozesse wohlfühlen aber ich werde schon wieder nervös wenn ich sehe das mein Speicher wieder nur zu ca. 27% frei ist.

                        40820fb4-cf70-41bb-b225-c6f1bfea2dc5-image.png

                        Ich werde ioBroker jetzt nochmal neu starten und mir die Speicherverläufe der nächsten Tage nochmal ansehen.

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #48

                        @LoxDUS

                        nur zur info:

                        https://www.linuxatemyram.com/

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • L LoxDUS

                          Ich werde wahnsinnig !!!
                          Habe gerade nochmal in den Speicherverbrauch reingeschaut:

                          2af98b57-21f2-477f-a882-6ea346c7b707-image.png
                          Nach der Überarbeitung der Scripte ist es zwar viel ruhiger geworden im Vergleich zu den Speicheraktivitäten (siehe ganz oben in diesem Thema) noch vor ca. 2 Tagen, nun fällt aber auf das der Speicher insgesamt also nicht nur der io.Javascript sondern auch z.B. der shelly, der systeminfo, eigentlich quasi alle Instanzen immer mehr Speicher brauchen. Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                          Vielleicht mache ich mich da ja auch verrückt und Linux holt sich gerade viele Dinge in seinen Speicher rein damit sich die Prozesse wohlfühlen aber ich werde schon wieder nervös wenn ich sehe das mein Speicher wieder nur zu ca. 27% frei ist.

                          40820fb4-cf70-41bb-b225-c6f1bfea2dc5-image.png

                          Ich werde ioBroker jetzt nochmal neu starten und mir die Speicherverläufe der nächsten Tage nochmal ansehen.

                          Dr. BakteriusD Online
                          Dr. BakteriusD Online
                          Dr. Bakterius
                          Most Active
                          schrieb am zuletzt editiert von
                          #49

                          @LoxDUS sagte in Speicherlecks im ioBroker?:

                          Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                          Das ist normal. Bei mir steigt der RAM-Bedarf über zwei Tage an und bleibt dann auf etwa diesem Niveau.

                          L 1 Antwort Letzte Antwort
                          0
                          • Dr. BakteriusD Dr. Bakterius

                            @LoxDUS sagte in Speicherlecks im ioBroker?:

                            Der Trend geht bei nahezu allen Instanzen der verschiedenen Adaptern nach oben (wenn auch nur sehr langsam).

                            Das ist normal. Bei mir steigt der RAM-Bedarf über zwei Tage an und bleibt dann auf etwa diesem Niveau.

                            L Offline
                            L Offline
                            LoxDUS
                            schrieb am zuletzt editiert von
                            #50

                            Kurzer Zwischenstand:
                            Habe nach dem Neustart gestern Morgen nochmal alle "Komfort" Scripte abgeschaltet, eine Instanz (systeminfo.0) deaktiviert und mein Hausdisplay (ist ein Raspberry mit Chrome und angeschlossenem Display wo über VIS die Anzeige bereitgestellt wird) abgeschaltet. (Habe da so eine Vermutung....)
                            Seit ca. 24h dümpelt der freie Speicher zwischen 64 und 66% rum.

                            791e89bb-0036-450d-8e8b-f619b8633633-image.png

                            Schalte jetzt im Tagesabstand die einzelnen "Komfort" Scripte wieder ein um zu sehen ob sich was am Speicher tut.

                            .... to be continued ....

                            L 1 Antwort Letzte Antwort
                            0
                            • L LoxDUS

                              Kurzer Zwischenstand:
                              Habe nach dem Neustart gestern Morgen nochmal alle "Komfort" Scripte abgeschaltet, eine Instanz (systeminfo.0) deaktiviert und mein Hausdisplay (ist ein Raspberry mit Chrome und angeschlossenem Display wo über VIS die Anzeige bereitgestellt wird) abgeschaltet. (Habe da so eine Vermutung....)
                              Seit ca. 24h dümpelt der freie Speicher zwischen 64 und 66% rum.

                              791e89bb-0036-450d-8e8b-f619b8633633-image.png

                              Schalte jetzt im Tagesabstand die einzelnen "Komfort" Scripte wieder ein um zu sehen ob sich was am Speicher tut.

                              .... to be continued ....

                              L Offline
                              L Offline
                              LoxDUS
                              schrieb am zuletzt editiert von
                              #51

                              Endstand 31.12.2020, 22:38Uhr:

                              Es läuft wieder alles stabil.
                              3732258b-5f82-4893-a049-e24f1859ee8a-image.png
                              Der freie Speicher hat sich zwischen 64 und 66% eingependelt.
                              Die Javascripte laufen alle und meine javascript Instanz hat sich auf eine feste Speicherauslastung eingelassen 🙂

                              4f95db21-1d73-48eb-97c1-523c83abb6b3-image.png
                              Ich habe tatsächlich noch in einem Skript einen setTimeout() und clearTimeout() Fehler gefunden.

                              Mein FAZIT:

                              • Das Know-How hier im Forum ist extrem hoch.

                              • Die Verwendung von setTimeout(), setIntervall() sollte mit bedacht gewählt werden. Vielleicht werden durch ein Event/Trigger immer wieder neue Timer-Objekte angelegt und die zuvor angelegten Objekte sind als nicht mehr erreichbare Referenz irgendwo im Speicher sodass auch der Garbage Collector sie nicht mehr finden kann. Immer hinterfragen ob ggf. mit einem clearTimeout() oder clearIntervall() erzeugte Objekte (die Callbackfunktionen) gelöscht werden müssen.
                                https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/ war ein guter Ansatzpunkt.

                              Viele Grüße und einen hervorragenden Start ins Jahr 2021!

                              Artur

                              1 Antwort Letzte Antwort
                              1
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              756

                              Online

                              32.4k

                              Benutzer

                              81.4k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe