Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. JS-Controller ca. alle 12h out of memory Error

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    JS-Controller ca. alle 12h out of memory Error

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Tobi 1 last edited by Tobi 1

      Hallo zusammen,

      Ich hab seit kurzem ein Problem mit meinem ioBroker und benötige evtl. einen Tipp zur Fehlersuche.

      Seit ca 2 Wochen stürzt der ioBroker fast regelmäßig alle 12h ab - mal nach 11h, mal nach 13h, auch nie auf die Minute gleich. Aber häufig nach diesem Muster.
      Ausnahmen bestätigen natürlich die Regel, manchmal auch wesentlich früher/später, manchmal auf zwei mal kurz hintereinander.

      Da ich nicht allzuviel dran neu gemacht habe, habe ich auch schon alle Blocklyscripts deaktiviert die in letzter Zeit neu dazu kamen. Viele warens jedoch nicht, 3 Stück.
      Trotzdem stürzt der ioBroker ab.

      Im Raspberry Log gibt es nur diesen Eintrag:

      Sep 23 14:04:53 raspberrypi kernel: Out of memory: Killed process 1589480 u(iobroker.js-con) total-vm:10233820kB, anon-rss:818560k>
      Sep 23 14:04:54 raspberrypi systemd[1]: iobroker.service: Main process exited, code=killed, status=9/KILL
      

      Woher dieses out of memory kommt würde ich gerne versuchen zu ermitteln, weiß aber nicht wie ich das am besten anstelle.
      Gibt es eine Möglichkeit zu ermitteln was im ioBroker vor so einem Crash passiert?

      Im Logfile von ioBroker lässt sich nichts zu einem Error in einem Blocklyscript oder ähnliches feststellen. ERROR: DB closed oder ähnliches was wohl auf den vollen Speicher zurückzuführen ist.

      Den Befehl „iob fix“ hab ich ebenfalls schon ausgeführt, ändert aber nichts am Verhalten.

      Mein System:
      Raspberry Pi4b mit 4GB RAM
      Raspberry OS Bookwork
      Alle Adapter aktuell
      Node.JS 20.17.0
      JS-Controller 6.0.11
      Neue externe SSD als Harddrive

      Anbei noch die Summary aus der ioBroker Diagnose:

      ======================= SUMMARY =======================
                              v.2024-05-22
      
      
       Static hostname: raspberrypi
             Icon name: computer
      Operating System: Debian GNU/Linux 12 (bookworm)
                Kernel: Linux 6.6.31+rpt-rpi-v8
          Architecture: arm64
      
      Installation:           native
      Kernel:                 aarch64
      Userland:               64 bit
      Timezone:               Europe/Berlin (CEST, +0200)
      User-ID:                1000
      Display-Server:         false
      Boot Target:            multi-user.target
      
      Pending OS-Updates:     0
      Pending iob updates:    0
      
      Nodejs-Installation:
      /usr/bin/nodejs         v20.17.0
      /usr/bin/node           v20.17.0
      /usr/bin/npm            10.8.2
      /usr/bin/npx            10.8.2
      /usr/bin/corepack       0.29.3
      
      Recommended versions are nodejs 20.17.0 and npm 10.8.2
      Your nodejs installation is correct
      
      MEMORY:
                     total        used        free      shared  buff/cache   available
      Mem:            4.0G        2.8G        252M        1.3M        397M        1.1G
      Swap:             0B          0B          0B
      Total:          4.0G        2.8G        252M
      
      Active iob-Instances:   34
      Upgrade policy: none
      
      ioBroker Core:          js-controller           6.0.11
                              admin                   7.1.3
      
      ioBroker Status:        iobroker is running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      Status admin and web instance:
      + system.adapter.admin.0                  : admin                 : raspberrypi                              -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
      + system.adapter.web.0                    : web                   : raspberrypi                              -  enabled, port: 8082, bind: 0.0.0.0, run as: admin
      
      Objects:                15858
      States:                 12984
      
      Size of iob-Database:
      
      38M     /opt/iobroker/iobroker-data/objects.jsonl
      37M     /opt/iobroker/iobroker-data/states.jsonl
      
      
      
      =================== END OF SUMMARY ====================
      

      Hat jemand einen Tipp wie man feststellen kann warum der Speicher halbwegs regelmäßig voll läuft?

      crunchip OliverIO Neuschwansteini 3 Replies Last reply Reply Quote 0
      • Neuschwansteini
        Neuschwansteini last edited by

        @tobi-1

        Was läuft noch alles für Dienste, Influx, grafana , Redis ?

        1 Reply Last reply Reply Quote 0
        • T
          Tobi 1 last edited by

          Nichts davon, und auch sonst nichts.

          Auf dem Raspberry läuft lediglich der ioBroker.

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @Tobi 1 last edited by

            @tobi-1

            Schalt mal swap an.

            1 Reply Last reply Reply Quote 0
            • T
              Tobi 1 last edited by

              Swap war bis vor 3 Tagen aktiviert (mit Größe 100MB, unverändert vom default-Wert).
              In einem anderen Forum hab ich jedoch gelesen dass Swap deaktivieren helfen könnte (warum auch immer).
              Bring keine Verbesserung, ob on oder off.

              1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @Tobi 1 last edited by crunchip

                @tobi-1 sagte in JS-Controller ca. alle 12h out of memory Error:

                Hat jemand einen Tipp wie man feststellen kann warum der Speicher halbwegs regelmäßig voll läuft?

                Vllt mal gelegentlich mit 'top' bzw 'htop' die Prozesse beobachten
                Oder einfach per Gui auf die einzelnen Adapter ein Auge werfen ob da ein unnormaler hoher Ram Verbrauch entsteht..
                In einem anderen Thread war es z. B der Admin wegen Fehlkonfiguration.

                T 1 Reply Last reply Reply Quote 0
                • T
                  Tobi 1 @crunchip last edited by

                  @crunchip

                  top bzw htop hab ich immerwieder offen.
                  Da hat der iobroker.js-controller meistens sowas zwischen 15 und 20% Memory Auslastung.

                  Den Moment in dem ioBroker abstürzt habe ich leider noch nicht visuell erwischt.

                  IMG_7199.jpeg

                  Wo kann man in der GUI die Speicherauslastung der Adapter sehen?

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Tobi 1 last edited by

                    @tobi-1 sagte in JS-Controller ca. alle 12h out of memory Error:

                    Wo kann man in der GUI die Speicherauslastung der Adapter sehen?

                    Bei den "Instanzen"

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      Tobi 1 @Codierknecht last edited by

                      @codierknecht

                      Das ist ja dann im Prinzip das selbe wie bei htop, nur dass es in der GUI in MB angezeigt wird und nicht in %.

                      Der Prozess welcher immer vom System gekillt wird ist iobroker.js-controller, aber das muss vielleicht nicht zwingend der Prozess sein der den hohen Speicherbedarf verursacht.

                      Ich werd dann wohl erstmal versuchen zu den typischen Absturzzeiten verstärkt drauf zu achten was da passiert. Evtl über Screen-Recording.

                      mcm1957 crunchip 2 Replies Last reply Reply Quote 0
                      • mcm1957
                        mcm1957 @Tobi 1 last edited by

                        @tobi-1
                        Schau mal ob deine Backupzeiten da ev korreliert.

                        T 1 Reply Last reply Reply Quote 0
                        • crunchip
                          crunchip Forum Testing Most Active @Tobi 1 last edited by

                          @tobi-1 sagte in JS-Controller ca. alle 12h out of memory Error:

                          Der Prozess welcher immer vom System gekillt wird ist iobroker.js-controller, aber das muss vielleicht nicht zwingend der Prozess sein der den hohen Speicherbedarf verursacht.

                          laut deinem screen, läuft der aber schon rund 42 Stunden, allerdings dein javascript nur 10 Stunden

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            Tobi 1 @mcm1957 last edited by

                            @mcm1957

                            Hatte ich auch schon im Verdacht.
                            Aber da der Absturz auch Tagsüber geschieht und meine Backups nachts nach 2 uhr laufen seh ich da keinen Zusammenhang

                            1 Reply Last reply Reply Quote 0
                            • T
                              Tobi 1 @crunchip last edited by Tobi 1

                              @crunchip

                              Hmm.. glaube nicht, dass das Stunden:Minuten:Sekunden sind.
                              Der mittlere Wert erhöht sich alle 10 Sekunden rum um 1.

                              Also ich logge jetzt mal den Speicherbedarf heute Nacht mit den jeweiligen PIDs mit solange bis ein Absturz kommt.
                              Dann poste ich das Ergebnis nochmal welche PID mit welcher Speicherauslastung zuletzt lief und welche vom System gekillt wurde.

                              Fakt ist, wenn ein Absturz kommt ist ioBroker kurze Zeit lang nicht erreichbar und alle Adapter starten neu.

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @Tobi 1 last edited by

                                @tobi-1

                                evtl liegt es an einem memory leak in einem deiner skripte.
                                das ist allerdings nicht leicht zu finden.
                                gern passiert das im javascript mit setinterval/settimeout, die nicht ordentlich beednet wurden.

                                ist zwar auf den browser bezogen, es gelten aber die selben regeln
                                https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/

                                1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @Tobi 1 last edited by

                                  @tobi-1 said in JS-Controller ca. alle 12h out of memory Error:

                                  Also ich logge jetzt mal den Speicherbedarf

                                  unter system.
                                  gibt es im iobroker reichlich datenpunkte um speicher je maschine und auch je adapter mit dem history adapter aufzuzeichnen

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    Tobi 1 @OliverIO last edited by

                                    @oliverio

                                    Ich hab mir ein kleines python script dazu geschrieben um losgelöst vom ioBroker zu sein.

                                    ich verwende tatsächlich in manchen Scripts setinterval, jedoch nicht erst seit kurzem.
                                    Und die letzten Monate wenn nicht sogar schon Jahre gabs da nie Probleme… das verwundert mich etwas.

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @Tobi 1 last edited by

                                      @tobi-1

                                      wenn speicherverbrauch ansteigend ist, aber du nicht immer mehr daten in irgendwelchen objektstrukturen speicherst, dann ist es ein memory leak
                                      dann hat bisher der speicher immer noch gereicht oder du hast es aus anderen gründen nicht wahr genommen.
                                      wenn es ein generelles problem wäre, dann würden hier ganz viele schreiben.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        Tobi 1 @OliverIO last edited by

                                        @oliverio

                                        Ich gehe davon aus, dass es kein generelles Thema ist.
                                        Aber ich hab auch keine Idee wie man das Problem finden kann.
                                        Werde mir deinen Link oben noch anschauen und alle meine Scripte die einen Intervall drin haben mal deaktivieren und schauen ob es immernoch passiert.

                                        Hatte die Hoffnung jemand kennt noch einen Kniff in ioBroker um das zu diagnostizieren

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          saeft_2003 Most Active last edited by

                                          jetzt nicht falsch verstehen, sind aber nicht 34 aktive Instanzen für 4GB RAM mehr als sportlich?

                                          crunchip 1 Reply Last reply Reply Quote 0
                                          • crunchip
                                            crunchip Forum Testing Most Active @saeft_2003 last edited by

                                            @saeft_2003 seh ich auch so, wobei es auch auf die jeweiligen Adapter ankommt.
                                            Laut screen werden aber schon rund 800MB allein durch Controller und Javascript belegt.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            867
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            25
                                            835
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo