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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Proxmox
  5. ioBroker-Container nutzt CPU der NAS nicht komplett aus

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    317

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

ioBroker-Container nutzt CPU der NAS nicht komplett aus

Geplant Angeheftet Gesperrt Verschoben Proxmox
19 Beiträge 6 Kommentatoren 1.4k Aufrufe 6 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.
  • MartinPM MartinP

    @marc-berg

    Mit vier solcher Prozesse kann ich meine CPU mit 4 Kernen unter Docker komplett auslasten.

    Javascript ist ja eigentlich nicht auf Nebenläufigkeit in mehreren Prozessen ausgelegt. Muss man da irgendetwas beachten, wenn man zu diesen Tuning-Maßnahmen greift?
    Können zwei Javascript-Instanzen frei auf denselben Datenpunkt zugreifen, oder könnte es da Kleinholz geben?

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

    @martinp sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

    Javascript ist ja eigentlich nicht auf Nebenläufigkeit in mehreren Prozessen ausgelegt

    nicht ganz korrekt.
    javascript/node ist single threaded. d.h. ohne irgendwas kann in einem javascript exakt nur eine anweisung gleichzeitig ausgeführt werden.
    iobroker besteht aus mehreren prozessen (der js-controller, web, jeder einzelne adapter)
    wenn diese prozesse miteinander kommunizieren müssen, dann muss man immer noch was tun.
    unter iobroker sind das die datenpunkte.

    was du mal machen kannst ist auf die console IM contaier zu gehen und dort mal mit top schauen welcher prozess da so ausgelastet ist.
    meist ist das die javascript instanz, die entweder wirklich viel macht oder skriptfehler enthält

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

    GlasfaserG 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @martinp sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

      Javascript ist ja eigentlich nicht auf Nebenläufigkeit in mehreren Prozessen ausgelegt

      nicht ganz korrekt.
      javascript/node ist single threaded. d.h. ohne irgendwas kann in einem javascript exakt nur eine anweisung gleichzeitig ausgeführt werden.
      iobroker besteht aus mehreren prozessen (der js-controller, web, jeder einzelne adapter)
      wenn diese prozesse miteinander kommunizieren müssen, dann muss man immer noch was tun.
      unter iobroker sind das die datenpunkte.

      was du mal machen kannst ist auf die console IM contaier zu gehen und dort mal mit top schauen welcher prozess da so ausgelastet ist.
      meist ist das die javascript instanz, die entweder wirklich viel macht oder skriptfehler enthält

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von
      #11

      Könne wir hier bitte beim Haupt-Thema von @matze007 bleiben

      ioBroker-Container nutzt CPU der NAS nicht komplett aus
      

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      OliverIOO 1 Antwort Letzte Antwort
      0
      • GlasfaserG Glasfaser

        Könne wir hier bitte beim Haupt-Thema von @matze007 bleiben

        ioBroker-Container nutzt CPU der NAS nicht komplett aus
        
        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #12

        @glasfaser sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

        ioBroker-Container nutzt CPU der NAS nicht komplett aus

        ja das ist das thema.
        er empfindet wahrscheinlich manche dinge als langsam obwohl seine cpu nicht ausgelastet ist.
        dennoch werden bestimmte prozesse bei 100 prozent sein, da ein javascript prozess nun mal genau nur einen thread einer cpu (hat meist 2 threads) nutzen kann.

        unter docker gibt es im standard keine beschränkung auf die cpu.
        ich glaube man kann die aber einstellen.

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

        GlasfaserG 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @glasfaser sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

          ioBroker-Container nutzt CPU der NAS nicht komplett aus

          ja das ist das thema.
          er empfindet wahrscheinlich manche dinge als langsam obwohl seine cpu nicht ausgelastet ist.
          dennoch werden bestimmte prozesse bei 100 prozent sein, da ein javascript prozess nun mal genau nur einen thread einer cpu (hat meist 2 threads) nutzen kann.

          unter docker gibt es im standard keine beschränkung auf die cpu.
          ich glaube man kann die aber einstellen.

          GlasfaserG Offline
          GlasfaserG Offline
          Glasfaser
          schrieb am zuletzt editiert von
          #13

          @oliverio sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

          ja das ist das thema.

          Richtig .

          Das Thema zur "Visuelle Darstellung "hatten wir hier zig mal im Forum durchgekaut .

          Die schauen nur auf die Bildchen / Diagramme und nicht mal LIVE .
          Deshalb sind diese Anzeigen / Synology nur Momentaufnahmen ( Schätzeisen ) einer Zeit X .

          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

          1 Antwort Letzte Antwort
          0
          • M matze007

            Hallo zusammen,

            ich habe ein Problem mit der Performance des ioBrokers als Docker-Container auf meiner DS720+ und würde mich freuen, wenn ihr mir helfen könntet. Zwar bin ich mir nicht sicher, ob das ein Thema für das Synology-Forum oder das ioBroker-Forum ist, aber da hier die Spezialisten für den ioBroker zu finden sind und ähnliche Konfigurationen vermutlich auch ihr verwendet, dachte ich, ich poste meine Frage hier.

            Es geht um folgendes... Mit der wachsenden Anzahl an Datenpunkten habe ich gemerkt, dass mein ioBroker-System immer langsamer wird. Das fällt vor allem bei Blockly auf, wenn alle Objekte parallel geladen werden. Zunächst dachte ich, dass meine DS720+ zu schwach ist und wollte mich schon nach einem Mini-PC umsehen, um den ioBroker in Proxmox zu packen. Doch dann habe ich mir die Auslastung mal genau angesehen und folgenden Umstand vorgefunden...

            Die CPU-Auslastung gemäß Portainer ist bei 100%:
            b8bf8dd9-27bb-4e1e-8433-33225e2aa136-image.png
            (Die 300% stammen vom Neustart des Containers)

            Jedoch ist die CPU-Auslastung des gesamten NAS nur bei rund 25%:
            08fbdd74-b72a-4e71-9dac-a8cf8c440c3d-image.png
            = Daraus schließe ich, dass nur 1 der 4 Kerne verwendet wird.

            Der ioBroker selbst erkennt jedoch die 4 Kerne der CPU:
            1ac2e789-65c6-4770-9e7a-34c4b97aa3c6-image.png

            In den Container-Einstellungen habe ich die CPU-Priorität auf "Hoch" gestellt:
            093e283d-cbd3-4f62-8c47-a76a967af3dc-image.png

            Den ioBroker habe ich frisch upgedatet.

            Habt ihr eine Idee, wie man den Container dazu bewegen kann die CPU stärker auszulasten?

            Danke euch!

            GlasfaserG Offline
            GlasfaserG Offline
            Glasfaser
            schrieb am zuletzt editiert von Glasfaser
            #14

            @matze007 sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

            Die CPU-Auslastung gemäß Portainer ist bei 100%:
            b8bf8dd9-27bb-4e1e-8433-33225e2aa136-image.png
            (Die 300% stammen vom Neustart des Containers)

            Ist doch alles in Ordnung !

            Er hat 4 Kerne also 400 % , also 1 Kern hat einen Verbrauch von 100 %

            kann man auch per compose setzen

            1 Kern nur

            cpus: '1'
            

            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

            1 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              matze007
              schrieb am zuletzt editiert von
              #15

              Wow, erstmal vielen Dank an alle für euren grandiosen Support. Ich bin gerade auf dem Sprung, wollte euch aber noch kurz die Prozessauslastung über top posten...

              Wenn der Objektbaum geladen wird, sieht es wie folgt aus:
              0635a86f-4570-42cf-bcc7-a76139329ae1-image.png

              Ist der Objektbaum geladen, ist alles wieder im Normalbereich:
              8325b9b0-d81d-43e4-b21a-6420af5a84fc-image.png

              Ich bin irrtümlich davon ausgegangen, dass bei 4 Kernen jeder Prozess die CPU voll auslasten kann. Das ist aber durch den single-threaded-Prozess wohl nicht so. Wobei sich das ja auf den javascript-Adapter bezog, der aber gemäß Screenshot gar nicht verantwortlich ist. Kann ich den verantwortlichen Prozess (iobroker.js-con(sole)) dazu bringen, mehr als einen Kern zu verwenden?

              Den Objektbaum hatte ich nicht ganz offen. Aber vermutlich hat er jeweils ca. 6.000 Datenpunkte laden müssen. Wenn ich den Objektbaum schließe, ist er natürlich viel schneller. Vielleicht muss ich mit den geöffneten Objekten einfach restriktiver sein, wenn das die Ursache des Übels ist... :-/

              GlasfaserG CodierknechtC OliverIOO 3 Antworten Letzte Antwort
              0
              • M matze007

                Wow, erstmal vielen Dank an alle für euren grandiosen Support. Ich bin gerade auf dem Sprung, wollte euch aber noch kurz die Prozessauslastung über top posten...

                Wenn der Objektbaum geladen wird, sieht es wie folgt aus:
                0635a86f-4570-42cf-bcc7-a76139329ae1-image.png

                Ist der Objektbaum geladen, ist alles wieder im Normalbereich:
                8325b9b0-d81d-43e4-b21a-6420af5a84fc-image.png

                Ich bin irrtümlich davon ausgegangen, dass bei 4 Kernen jeder Prozess die CPU voll auslasten kann. Das ist aber durch den single-threaded-Prozess wohl nicht so. Wobei sich das ja auf den javascript-Adapter bezog, der aber gemäß Screenshot gar nicht verantwortlich ist. Kann ich den verantwortlichen Prozess (iobroker.js-con(sole)) dazu bringen, mehr als einen Kern zu verwenden?

                Den Objektbaum hatte ich nicht ganz offen. Aber vermutlich hat er jeweils ca. 6.000 Datenpunkte laden müssen. Wenn ich den Objektbaum schließe, ist er natürlich viel schneller. Vielleicht muss ich mit den geöffneten Objekten einfach restriktiver sein, wenn das die Ursache des Übels ist... :-/

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                schrieb am zuletzt editiert von
                #16

                @matze007 sagte in ioBroker-Container nutzt CPU der NAS nicht komplett aus:

                Den Objektbaum hatte ich nicht ganz offen. Aber vermutlich hat er jeweils ca. 6.000
                #Datenpunkte laden müssen. Wenn ich den Objektbaum schließe, ist er natürlich viel schneller.

                Deshalb mein Hinweis dazu !

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                1 Antwort Letzte Antwort
                0
                • M matze007

                  Wow, erstmal vielen Dank an alle für euren grandiosen Support. Ich bin gerade auf dem Sprung, wollte euch aber noch kurz die Prozessauslastung über top posten...

                  Wenn der Objektbaum geladen wird, sieht es wie folgt aus:
                  0635a86f-4570-42cf-bcc7-a76139329ae1-image.png

                  Ist der Objektbaum geladen, ist alles wieder im Normalbereich:
                  8325b9b0-d81d-43e4-b21a-6420af5a84fc-image.png

                  Ich bin irrtümlich davon ausgegangen, dass bei 4 Kernen jeder Prozess die CPU voll auslasten kann. Das ist aber durch den single-threaded-Prozess wohl nicht so. Wobei sich das ja auf den javascript-Adapter bezog, der aber gemäß Screenshot gar nicht verantwortlich ist. Kann ich den verantwortlichen Prozess (iobroker.js-con(sole)) dazu bringen, mehr als einen Kern zu verwenden?

                  Den Objektbaum hatte ich nicht ganz offen. Aber vermutlich hat er jeweils ca. 6.000 Datenpunkte laden müssen. Wenn ich den Objektbaum schließe, ist er natürlich viel schneller. Vielleicht muss ich mit den geöffneten Objekten einfach restriktiver sein, wenn das die Ursache des Übels ist... :-/

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #17

                  @matze007
                  Just for Info

                  Kann ich den verantwortlichen Prozess (iobroker.js-con(sole))

                  … nix „Console“ … „Controller“

                  Das ist quasi der „Kernel“ des ioBroker 😉

                  Und wie @Glasfaser schon schrieb: Ein „offener“ Objektbaum braucht beim Laden. Auch auf meinem Core i7. Darum öffne ich immer nur das was ich gerade brauche. Macht es auch übersichtlicher.

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  1 Antwort Letzte Antwort
                  0
                  • M matze007

                    Wow, erstmal vielen Dank an alle für euren grandiosen Support. Ich bin gerade auf dem Sprung, wollte euch aber noch kurz die Prozessauslastung über top posten...

                    Wenn der Objektbaum geladen wird, sieht es wie folgt aus:
                    0635a86f-4570-42cf-bcc7-a76139329ae1-image.png

                    Ist der Objektbaum geladen, ist alles wieder im Normalbereich:
                    8325b9b0-d81d-43e4-b21a-6420af5a84fc-image.png

                    Ich bin irrtümlich davon ausgegangen, dass bei 4 Kernen jeder Prozess die CPU voll auslasten kann. Das ist aber durch den single-threaded-Prozess wohl nicht so. Wobei sich das ja auf den javascript-Adapter bezog, der aber gemäß Screenshot gar nicht verantwortlich ist. Kann ich den verantwortlichen Prozess (iobroker.js-con(sole)) dazu bringen, mehr als einen Kern zu verwenden?

                    Den Objektbaum hatte ich nicht ganz offen. Aber vermutlich hat er jeweils ca. 6.000 Datenpunkte laden müssen. Wenn ich den Objektbaum schließe, ist er natürlich viel schneller. Vielleicht muss ich mit den geöffneten Objekten einfach restriktiver sein, wenn das die Ursache des Übels ist... :-/

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

                    @matze007

                    Also, es ist so wie vermutet. Ein Prozess, ausgerechnet der js-controller ist zeitweise bei 100 %
                    Leider kann man das nicht auf mehrere CPUs erweitern
                    Man könnte jetzt noch schauen, warum das Laden des Objektbaumes so lange dauert
                    Wie speicherst du die Daten Punkte? Jsonl, Redis?
                    Hast du eine Festplatte oder eine SSD oder gar nur eine SD?
                    Wie ist die Performance des Datenträgers?
                    Wenn der Prozess im Normalzustand nur 3 % benötigt, dann ist das Betriebssystem mit IO beschäftigt.
                    Das wäre der Punkt, an dem man ansetzen könnte zur Optimierung.

                    Da du genügend freien Raum hast, ist auch der Swap nicht das Problem

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

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      matze007
                      schrieb am zuletzt editiert von
                      #19

                      Heute habe ich etwas intensiver mit dem System gearbeitet, um das Verhalten mit reduziertem Objektbaum zu prüfen. Gerne möchte ich euch hier kurz ein Update geben - auch, damit andere Nutzer die über das Problem stolpern den finalen Stand haben.

                      @glasfaser

                      hast du diesen ( alten Effekt ) https://github.com/ioBroker/ioBroker.admin/issues/1656

                      Das Issue habe ich mir durchgelesen. Dort wird auch auf https://forum.iobroker.net/topic/31020/javascript-blockly-wird-oft-nicht-gespeichert/332 verwiesen. Dort ist ein Problem beschrieben, bei dem Blockly auch beim Laden der Datenpunkte überlastet ist und das Speichern träge abläuft oder Änderungen sogar verworfen werden. Das Problem habe ich bei mir auch schon beobachtet. Die Parallele zum Verweis von @glasfaser ist also da.

                      @codierknecht:

                      … nix „Console“ … „Controller“

                      Sorry ;-)

                      @oliverio:

                      Ein Prozess, ausgerechnet der js-controller ist zeitweise bei 100 %
                      Leider kann man das nicht auf mehrere CPUs erweitern

                      Schade, dass sich der Prozess nicht aufteilen lässt. Das wäre jetzt natürlich super gewesen.

                      @oliverio:

                      Wie speicherst du die Daten Punkte? Jsonl, Redis?

                      Puh, jetzt bin ich überfragt. Ich meine hier nichts angepasst zu haben. Wie kann ich das nachvollziehen? Und welchen Methode hat welchen Vorteil?

                      @oliverio:

                      Hast du eine Festplatte oder eine SSD oder gar nur eine SD?
                      Wie ist die Performance des Datenträgers?

                      Im NAS werkelt eine Seagate IronWolf-Platte. Abgesehen von diversen Containern wird das System momentan für nichts verwendet. Die Platte wird also nicht der Engpass sein.

                      @oliverio:

                      Wenn der Prozess im Normalzustand nur 3 % benötigt, dann ist das Betriebssystem mit IO beschäftigt.
                      Das wäre der Punkt, an dem man ansetzen könnte zur Optimierung.

                      Interpretiere ich das richtig, dass die 3% im Ruhezustand (= also ohne Objektbaum, der geladen werden muss) deiner Erfahrung nach zu viel sind? Vielleicht muss ich dazu sagen, dass ich ein KNX-System im Einsatz habe. Auch habe ich 2 IR-Leseköpfe an meinen Stromzählern. Somit kommen ständig irgendwelche Daten rein, die verarbeitet werden wollen. Erklärt das die 3%?

                      Ansonsten läuft das System mit zugeklapptem Objektbaum in Blockly deutlich schneller. Klar, ich komme beim Aufklappen eines Ordners im Objektbaum wieder auf 100%, aber die Daten sind dann schneller geladen und das System kehrt zügig in eine normale Auslastung zurück.

                      Eine Frage noch, die das Problem vielleicht auch lösen würde: Beim Öffnen des Objektbaums in Blockly werden ja immer die aktuellen Werte angezeigt. Kann es sein, dass diese aktiv nachgeladen/aktualisiert werden? Das müsste nicht sein. Es würde ausreichen, wenn a.) der letzte Wert angezeigt wird (ohne nachgeladen zu werden) oder b.) die Werte gar nicht angezeigt werden. Ließe sich das einstellen?

                      Danke euch.

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      692

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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