NEWS
[gelöst] Unterschiedliche node.js Versionen mit Node-Red und Speicherauslastung
-
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.debroot@rasp1:~# node -v
v0.12.6
root@rasp1:~# npm -v
2.11.2Wohin 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 nodejsnodejs 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.jsEr 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!
-
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
-
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 :)
-
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
-
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
-
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
-
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…
-
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.
-
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
rebootReboot 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.
-
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.web2\. 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é