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.
    • 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

                            415
                            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