Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Unterschiedliche node.js Versionen mit Node-Red und Speicherauslastung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Unterschiedliche node.js Versionen mit Node-Red und Speicherauslastung

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

      Ich möchte meine bisherigen Erfahrungen zur Speicherauslastung mitteilen und zur Diskussion stellen.

      Ich habe aktuell ein Raspberry PI 3 am laufen mit recht vielen Adaptern, MySQL (Adapter + Datenbank) und Node-Red. Der Node-Red Prozess hat den höchsten Speicherbedarf und nutzt die CPU am meisten (10-30%). Es wird im 5 Sekunden-Takt der RS485 ADapter ausgelesen , das Piface Board angesteuert bzw. gelesen und diverse MySQL Flows initialisiert (ca. 20.000 Datensätze pro Tag).

      Nach diversen Neuinstallationen und Versuchen mit Multihost ist mir nun folgendes aufgefallen.

      Ich habe folgende Varianten getestet:

      1. Node.js 0.12.6 wie emfohlen:````
      wget http://download.iobroker.net/nodejs0_12_6_armhf.deb
      dpkg -i nodejs0_12_6_armhf.deb
      rm nodejs0_12_6_armhf.deb

      mit der Standard Node-Red Version (0.12.5.)
      
      2\. Node.js version 4.26````
      curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
      sudo apt-get install -y nodejs
      

      Nach (1) ausgeführt. node -v zeigt weiterhin 0.12.6. an (warum?)

      Node-Red wie (1)

      3. Node.js wie (2) und Node-Red 0.13.2````
      cd /opt/iobroker/node_modules/iobroker.node-red
      iobroker stop node-red.0
      npm i --unsafe-perm node-red@0.13.2
      iobroker start node-red.0

      
      Meine Erfahrungen:
      
      (1) Rechner hat massive Speicherprobleme und nutzt bis zu 300 MB Swap
      
      Regelmäßige Abstürze - alle 24-36 Stunden
      
      (2) ca. 150 - 200 free memory. Swap maximal 5-10 MB
      
      Rechner läuft stabil, nur Node-Red macht Probleme.
      
      Beim Deployment von Änderungen wird häufig die Verbindung zum Server nicht gefunden.
      
      (3) wie (2) und Node-red deutlich stabiler. Alles stabil
      
      ****Hat jemand ähnliche Erfahrungen mit den unterschiedlichen node.js Versionen?****
      
      Wie installiere ich die Version 4.xx eigentlich richtig? (siehe (2))
      
      Wenn ich nur````
      curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
      sudo apt-get install -y nodejs
      ````ausführe, ohne vorher 0.12.6 installiert zu haben, dann fehlt node. Warum eigentlich?
      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @tom57:

        Ich möchte meine bisherigen Erfahrungen zur Speicherauslastung mitteilen und zur Diskussion stellen.

        Ich habe aktuell ein Raspberry PI 3 am laufen mit recht vielen Adaptern, MySQL (Adapter + Datenbank) und Node-Red. Der Node-Red Prozess hat den höchsten Speicherbedarf und nutzt die CPU am meisten (10-30%). Es wird im 5 Sekunden-Takt der RS485 ADapter ausgelesen , das Piface Board angesteuert bzw. gelesen und diverse MySQL Flows initialisiert (ca. 20.000 Datensätze pro Tag).

        Nach diversen Neuinstallationen und Versuchen mit Multihost ist mir nun folgendes aufgefallen.

        Ich habe folgende Varianten getestet:

        1. Node.js 0.12.6 wie emfohlen:````
        wget http://download.iobroker.net/nodejs0_12_6_armhf.deb
        dpkg -i nodejs0_12_6_armhf.deb
        rm nodejs0_12_6_armhf.deb

        mit der Standard Node-Red Version (0.12.5.)
        
        2\. Node.js version 4.26````
        curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
        sudo apt-get install -y nodejs
        

        Nach (1) ausgeführt. node -v zeigt weiterhin 0.12.6. an (warum?)

        Node-Red wie (1)

        3. Node.js wie (2) und Node-Red 0.13.2````
        cd /opt/iobroker/node_modules/iobroker.node-red
        iobroker stop node-red.0
        npm i --unsafe-perm node-red@0.13.2
        iobroker start node-red.0

        
        Meine Erfahrungen:
        
        (1) Rechner hat massive Speicherprobleme und nutzt bis zu 300 MB Swap
        
        Regelmäßige Abstürze - alle 24-36 Stunden
        
        (2) ca. 150 - 200 free memory. Swap maximal 5-10 MB
        
        Rechner läuft stabil, nur Node-Red macht Probleme.
        
        Beim Deployment von Änderungen wird häufig die Verbindung zum Server nicht gefunden.
        
        (3) wie (2) und Node-red deutlich stabiler. Alles stabil
        
        ****Hat jemand ähnliche Erfahrungen mit den unterschiedlichen node.js Versionen?****
        
        Wie installiere ich die Version 4.xx eigentlich richtig? (siehe (2))
        
        Wenn ich nur````
        curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
        sudo apt-get install -y nodejs
        ````ausführe, ohne vorher 0.12.6 installiert zu haben, dann fehlt node. Warum eigentlich? `  
        

        Ich möchte dazu ergänzen, dass ich neulich auf 4.3.1 umgestiegen bin und wurde auch die für die Installation emfehlen. Nun habe ich noch keine Zeit gefunden, um die Webseiten upzudaten (geschweige schon die Images).

        Bin aber für die Hilfe bei der Korrekturen dankbar

        1 Reply Last reply Reply Quote 0
        • N
          nobody last edited by

          @tom57:

          Nach (1) ausgeführt. node -v zeigt weiterhin 0.12.6. an (warum?)

          Node-Red wie (1) `

          Hallo tom57,

          der Symlink wird bei den offiziellen Debian-Paketen nicht durch das Paket nodejs sondern durch das Paket node-legacy angelegt.

          Da du dieses vorher wahrscheinlich nicht deinstalliert hast, wird node noch auf die alte Installation 0.12.6 zeigen.

          Wenn du dir den Inhalt des Ordners /usr/bin mit ls -la anzeigen lässt, steht dort, auf welche Datei zurzeit verlinkt ist.

          Das kann man ohne langwierige Installationen aber ganz einfach beheben:

          rm /usr/bin/node
          ln -s [the path of nodejs] /usr/bin/node 
          
          

          Die richtige nodejs-Datei sollte bei Installation des nodesource-Packages auch im Verzeichnis /usr/bin sein.

          Was sagt den bei dir npm -v ? Dort müsste eigentlich eine Version 2.14.x ausgegeben werden. Ansonsten ist da der Symlink auch noch falsch.

          Wenn du node 4.x über

          curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

          sudo apt-get install -y nodejs

          installiert hast, wirst du beim nächsten Systemupdate mit apt-get update & apt-get upgrade automatisch auf die jetzt aktuelle 4.4.0 gehoben, da deb.nodesource.com/setup_4.x nun als Repository zugefügt wurde. Bis jetzt hab ich noch keine Nachteile dadurch gehabt, automatisch mit Updates versorgt zu werden.

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

            Danke für das Feedback soweit. Ich bin aber nach wie vor etwas verloren.

            Wenn ich nach der Standardanleitung````
            wget http://download.iobroker.net/nodejs0_12_6_armhf.deb
            dpkg -i nodejs0_12_6_armhf.deb
            rm nodejs0_12_6_armhf.deb

            root@rasp1:~# node -v
            v0.12.6
            root@rasp1:~# npm -v
            2.11.2

            
            Wohin wird dann eigentlich installiert? - /usr/local/lib/node_modules ???
            
            Wenn ich dann mit apt-get remove node wieder deinstalliere, kommen jede Menge Warnungen, dass das Verzeichnis /usr/local/lib/node_modules/… nicht leer ist.
            
            Wenn ich mit
            

            curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
            sudo apt-get install -y nodejs

            nodejs 4.4.0 installiere, dann habe ich folgened Bild in /usr/bin
            

            lrwxrwxrwx 1 root root 22 Mär 15 13:59 /usr/bin/node -> /etc/alternatives/node
            -rwxr-xr-x 1 root root 16176532 Mär 11 21:15 /usr/bin/nodejs
            -rwxr-xr-x 1 root root 26280 Mär 21 2015 /usr/bin/nohup
            lrwxrwxrwx 1 root root 38 Mär 11 21:15 /usr/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

            
            Er findet dann nicht die Pfade zu node oder npm?
            
            Was muss ich machen? Kann ich denn nodejs 4.4.0 über die Installation von ioBroker mit 0.12.6 überhaupt installieren?
            
            Auf einem leeren PI - wenn ich alles neu installiere - funktioniert alles.
            
            Ist das nur eine Frage der Symlinks oder muss ich komplett neu anfangen? Hoffentlich nicht!
            1 Reply Last reply Reply Quote 0
            • N
              nobody last edited by

              Prinzipiell können die ausführbaren Dateien in jedem Verzeichnis liegen, das im Suchpfad liegt.

              Alle folgenden Aktionen mit User root ausführen.

              root@raspberrypi:/# echo $PATH
              /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
              
              

              Lösche mal die aktuelle Installation:

              apt-get remove nodejs
              
              

              Suche nach allen vorkommen von node und nodejs und lösche diese:

              cd /
              find -name node -type f
              find -name nodejs -type f
              
              

              Wichtig:

              in einem anderen Thread wurde hierfür find -name node -delete vorgeschlagen. Es existieren bei mir jedoch jeweils Dateien mit dem Namen node unter /proc/irq/[x]/node. Diese gehören nicht zu node.js und sind auch nicht zu löschen!

              Anschließend node.js neu installieren:

              apt-get install -y nodejs
              
              

              Falls der Symlink für node nicht automatisch angelegt wird ( node -v funktioniert nicht), dann noch folgendes:

              ln -s /usr/bin/nodejs /usr/bin/node
              
              
              1 Reply Last reply Reply Quote 0
              • T
                tp1de last edited by

                Danke für die Hilfestellungen 🙂

                Hatte in dem Thread den Vorschlag mit find -name node -delete schon gesehen.

                War mir aber etwas waghalsig…

                Ich habe nun mehrfach deinstalliert und installiert.

                Wenn ich das richtig sehe, hat folgender Befehl den Durchbruch gebracht:

                apt-get --purge remove node
                apt-get --purge remove nodejs
                

                D.h. der Parameter –purge scheint die notwendigen Files gelöscht zu haben.

                Dann hat die Installation mit

                curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
                sudo apt-get install -y nodejs
                ````auch funktioniert.
                
                Alles scheint nun mit node v4.4.0 zu laufen. npm ist 2.14.20.
                
                Manuell musste ich bei den Symlinks nicht eingreifen.
                
                Ich musste danach nur die Node-Red Version 0.13.2 neu installieren !
                
                Nun hab ich den zuerst beschriebenen Effekt:
                
                CPU-Nutzung nur ca. 30-40% im Vergleich zu node.js 0.12.6
                
                RAM ca. 18% frei und kein Swapping mehr im Vergleich zum massiven Swap (300MB) mit 0.12.6.
                
                Ich ziehe mir gleich mal ein Image zur Datensicherung. Nochmals vielen Dank.
                
                Wäre interessant zu erfahren, ob es bei anderen Forumteilnehmern ähnliche Änderungen beim
                
                CPU und Memory Verhalten gibt. Bei mir ist der Unterschied frappierend :)
                1 Reply Last reply Reply Quote 0
                • M
                  mctom last edited by

                  Hallo Tom,

                  hattest du schon die nodejs Version 0_12_6 auf deinem System un dann die Schwierigkeiten bei der Deinstallation. Und war es ein blankes Jessie Image ?

                  Ich versuche gerade eine neue Anleitung für PI3, Jessie und Nodejs 4 für die Homepage zu erstellen.

                  Gruß

                  MIchael

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

                    Hallo Michael,

                    Ich hatte ioBroker nach Vorgabe zusammen mit node.js v0.12.6 installiert.

                    Läuft so schon einige Monate. Also, kein blankes System.

                    Hatte dann einige Wochen mit Multihost experimentiert. Da ich erhebliche Performance Probleme hatte.

                    Nun läuft alles auf einem PI3 - und siehe da extrem performant.

                    Langzeittests stehen jetzt noch aus. Habe jetzt schon 2 Millionen Datensätze in der mySQL Datenbank.

                    Muss mir was überlegen zur Komprimierung der Daten.

                    Bei Neuinstallation mit dem aktuellen Jessie Image, funktioniert die direkte Installation soweit ich in Erinnerung habe.

                    Kann ich morgen aber mal auf einem anderen PI ausprobieren, wenn das von Interesse ist.

                    Grüße

                    Thomas

                    1 Reply Last reply Reply Quote 0
                    • M
                      mctom last edited by

                      Hallo Thomas,

                      das wär klasse wenn du es noch einmal testen könntest, dann kann ich das mit in die Anleitung aufnehmen.

                      Gruß

                      Michael

                      1 Reply Last reply Reply Quote 0
                      • OstfrieseUnterwegs
                        OstfrieseUnterwegs last edited by

                        Kleiner Erfahrungsbericht:

                        Ich habe gerade einen PI-1 from scratch mit NOOB aufgesetzt.

                        Erwartungsgemäß war node in v0.10.29 instaliert.

                        Alles als root

                        Ich habe dann die aktuelle V4 mit

                        curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
                        sudo apt-get install -y nodejs
                        

                        dann ergibt aber

                        node -v
                        Ungültiger Machinenbefehl
                        

                        Die 5er versucht… gleiches Ergebnis

                        nodejs deinstalliert

                        apt-get --purge remove nodejs
                        apt-get autoremove
                        

                        Anderes Verfahren

                        wget http://node-arm.herokuapp.com/node_latest_armhf.deb
                        dpkg -i node_latest_armhf.deb
                        node -v
                        v4.2.1
                        
                        

                        Installation iobroker

                        cd /opt/iobroker
                        npm install iobroker
                        

                        Fehlermeldung

                        npm WARN cannot run in wd iobroker@0.7.1 node lib/setup.js (wd=/opt/iobroker/node_modules/iobroker)
                        iobroker@0.7.1 node_modules/iobroker
                        └── yargs@4.3.1 (decamelize@1.2.0, camelcase@2.1.1, window-size@0.2.0, require-main-filename@1.0.1, y18n@3.2.0, yargs-parser@2.1.1, lodash.assign@4.0.6, os-locale@1.4.0, string-width@1.0.1, cliui@3.1.0, read-pkg-up@1.0.1, pkg-conf@1.1.1)
                        
                        

                        google besucht und Empfehlung gefunden

                        npm install --unsafe-perm iobroker
                        

                        Scheint zu laufen.

                        Sagt mir, wenn ich noch was testen soll…

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

                          Bei mir ist es so, dass wenn ich node.js deinstalliere mit

                          apt-get --purge remove node
                          apt-get --purge remove nodejs
                          apt-get autoremove
                          

                          (Die 0.12.6 Version muss ich mit apt-get –purge remove node deinstallieren nicht nodejs!)

                          und dann neu installiere mit

                          curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
                          sudo apt-get install -y nodejs
                          ````dann muss ich erst rebooten, bevor die neue node.js läuft.
                          
                          Hab ich heute noch einmal auf einem anderen Pi probiert.
                          
                          D.h. der fehlende Reboot war mein Problem zuerst.
                          
                          D.h. ohne Reboot läuft es nicht fehlerfrei - danach ist alles wie es sein soll.
                          
                          Ich vermute erst danach wird der Pfad angepasst.
                          1 Reply Last reply Reply Quote 0
                          • T
                            tp1de last edited by

                            Noch ein paar Ergänzungen:

                            1. Mit node 4.4.0 startet ioBroker nicht mehr automatisch nach reboot.

                            Manueller Start funktioniert

                            2. Mit node 4.2.1 funktioniert der Autostart wieder

                            wget http://node-arm.herokuapp.com/node_latest_armhf.deb
                            dpkg -i node_latest_armhf.deb
                            
                            

                            3. Mit````
                            apt-get --purge remove node
                            apt-get --purge remove nodejs
                            apt-get autoremove
                            reboot

                            
                            Reboot nicht vergessen !
                            
                            Ich wundere mich immer noch, dass der Memorybedarf in Abhängigkeit von der node.js Version so unterschiedlich ist. Node 4.2.1 funktioniert auch sauber.
                            1 Reply Last reply Reply Quote 0
                            • andre
                              andre Developer last edited by

                              Hallo,

                              auch wenn das Thema hier schon gelöst ist, wollte ich doch noch einmal kurz meinen Senf dazu geben. 🙂

                              Habe mich gerade, nachdem ich das hier gelesen habe:
                              @Bluefox:

                              Ich möchte dazu ergänzen, dass ich neulich auf 4.3.1 umgestiegen bin und wurde auch die für die Installation emfehlen… `
                              spontan dazu entschlossen meine node.js Version ebenfalls hoch zu ziehen (auf 4.4.0). So hat es auch bei mir geklappt:
                              @tom57:

                              Bei mir ist es so, dass wenn ich node.js deinstalliere mit

                              apt-get --purge remove node
                              apt-get --purge remove nodejs
                              apt-get autoremove
                              

                              und dann neu installiere mit

                              curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
                              sudo apt-get install -y nodejs
                              ````dann muss ich erst rebooten, bevor die neue node.js läuft. `  
                              

                              Anschließend habe ich folgende Probleme gehabt:

                              1. Simple Web Adapter in "Bootschleife" (bedeutet Absturz "terminated with code 1" und anschließender Neustart des Adapters) und dadurch natürlich kein Zugriff auf Vis. Lösung: Ich hatte meinen Simple Web Adapter auf Port 80 laufen. Nach dem Löschen des Adapters über die Admin Oberfläche, sowie````
                              npm cache clean
                              npm install iobroker.web

                              
                              2\. Autostart/ Start über iobroker.sh funktioniert nicht mehr. Wie auch hier berichtet:
                              ~~@tom57:~~ 
                              
                              > 1\. Mit node 4.4.0 startet ioBroker nicht mehr automatisch nach reboot.
                              > 
                              > Manueller Start funktioniert `  Fehlermeldung sinngemäß: Pfad nicht gefunden.
                              
                              ****Lösung:**** Es reicht im Script den "angemeckerten" Pfad bzw. die Zeile zu ändern:
                              

                              NODECMD=/usr/local/bin/node

                              ändern in:
                              

                              NODECMD=node

                              Dann klappts auch wieder mit dem Nachbarn… ääähhh Starten...
                              
                              Mittlerweile habe ich alle Adapter durchgetestet. Funktioniert soweit, bzw. "wie vorher".
                              
                              Einen Effekt habe ich in der CPU-Auslastung meines Cubietruck nicht erkennen können. Momentan ist es aber tendenziell ein bisschen mehr Last (allerdings habe ich seit der Aktualisierung von node.js auch reichlich administriert und getestet, während der Zeitraum davor Leerlauf war):
                               ![914_cpu.jpg](/assets/uploads/files/914_cpu.jpg) 
                              Beim Memory sieht das Ganze deutlicher aus. In etwa 20% mehr Spreicher frei! Swap hatte ich aufgrund meiner 2GB Systemspeicher sowieso nicht…
                               ![914_memory.jpg](/assets/uploads/files/914_memory.jpg) 
                              
                              MfG,
                              
                              André
                              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

                              709
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              6
                              13
                              3878
                              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