Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Ich würde so gerne, doch es klappt nicht

    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

    Ich würde so gerne, doch es klappt nicht

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

      Hi aquapro,

      ich habe die Daten im post ergänzt.

      SSL habe ich nicht aktiviert. Ich vermute du verwendest das für den Zugriff von aussen ?

      ach ja, es sind doch nur 34 adapter, denn zwei waren nur installiert und nicht aktiviert

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Ich werd heute abend auch mal die system specs von meinem system posten.

        Bezüglich ram muss man zwischen reserviert und tatsächlich genutzt unterscheiden. ioBroker zeigt reserviert an. Mit df -h sieht man die Belegung aufgeschlüsselt. Bei mir zeigt iobroker 10% frei an, df -h sagt 360mb. Bei 1gb wären das 36%.

        Gesendet von meinem Jolla mit Tapatalk
        2605_26863396-5825-bd16-0d91-b45c430df278.log

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          Hi JC

          df-h sieht bei mir zur Zeit so aus. (letzter reboot - gestern)

          Filesystem Size Used Avail Use% Mounted on

          rootfs 89G 16G 70G 19% /

          /dev/root 89G 16G 70G 19% /

          devtmpfs 484M 0 484M 0% /dev

          tmpfs 98M 228K 98M 1% /run

          tmpfs 5.0M 0 5.0M 0% /run/lock

          tmpfs 6.1G 0 6.1G 0% /run/shm

          /dev/mmcblk0p1 56M 15M 42M 26% /boot

          free -m sieht so aus

          total used free shared buffers cached

          Mem: 974 887 87 0 6 35

          -/+ buffers/cache: 845 129

          Swap: 30043 26 30016

          also auch nicht üppig - Trotzdem es gibt überhaupt gar keine Abstürze

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Ah verdammt ich bring zur Zeit alles durcheinander free -m zeigt den ram an. Die Zeile bufgers/cache zeigt bei free den freien speicher.

            Gesendet von meinem Jolla mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • A
              aquapro last edited by

              lol, wollte gerade schreiben, ob wir noch vom gleichen "Speicher" reden. 🙂

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                habs ergänzt

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

                  Hallo zusammen,

                  wäre mal an der Zeit, ein kleines Tutorial zum Thema Speicheroptimierung zu schreiben. Diese Daten verstecken sich zurzeit in vielen einzelnen Threads und sind somit nur schwer zu finden. Vielleicht kann das ja auch jemand in das Handbuch übernehmen. Ich hab da keinen Zugriff darauf.

                  ioBroker und alle Adapter basieren auf node.js, einer Entwicklung für Serverseitiges Javascript auf Basis der V8 Engine von Google.

                  Javascript ist eine interpretierende Sprache, bei der Variablen nicht explizit deklariert und freigegeben werden müssen. Die Bereinigung und Freigabe von Speicherbereichen erfolgt hier im Rahmen einer sogenannten Garbarge Collection. Diese arbeitet bei V8 nach dem Stop-The-World-Modell, d.h. für die Speicherbereinigung werden alle anderen Prozesse gestoppt und erst nach Abschluss der Speicherbereinigung wieder freigegeben.

                  Die aktuellen Versionen von V8 bereinigen per Default den nicht mehr benötigten Hauptspeicher erst, wenn 512 MB belegt wurden. Da bei ioBroker der js-controller, alle als Daemon laufende Adapter und node-red eigenständige node.js Prozesse sind, kann somit theoretisch jeder dieser Prozesse auf mehr als 512 MB anwachsen. Dies ist insbesondere aus Systemen mit geringem RAM (z.B. Raspberry Pi) oder vielen Adaptern problematisch, da dies zur Beendigung von Prozessen das das System oder Programmabstützen führen kann.

                  V8 erlaubt jedoch individuelle Festlegungen des Zeitpunkts, an dem die Garbage-Collection gestartet werden soll. Dies erfolgt über den Startparameter –max-old-space-size. Die aktuellen Versionen des js-controllers und der Admin-Oberfläche erlauben die individuelle Festlegung dieses Parameters pro Adapter.

                  Für den js-controller muss dieser Parameter über die Konfigurationsdatei festgelegt werden:

                  Datei /opt/iobroker-data/iobroker.json z.B. mit nano öffnen.

                  Folgenden Text direkt nach der ersten geschweiften Klammer vor "network": { einfügen:

                      "system": {
                          "memoryLimitMB": 80
                      },
                  
                  

                  Hierdurch wird das Limit auf 80 MB gesetzt. Dieser Wert scheint zurzeit für den Controller ausreichend zu sein.

                  Für alle anderen Adapter kann der Wert über die Admin-Oberfläche eingestellt werden:
                  632_a.png

                  Das Speicherlimit kann hier in der Spalte RAM-Limit eingetragen werden. Die Angabe erfolgt hierbei in MB. Keine Angabe = Default 512 MB.

                  Welche Werte hier sinnvoll sind, hängt vom System und dem Nutzungsszenario ab. Das Bild zeigt Beispielwerte, mit dem ein Produktivsystem auf einen Raspberry PI 2b stabil läuft.

                  Zum Thema history und sql gibt es ja schon einen guten Thread, der die Vor- und Nachteile beschreibt. Insbesondere bei mysql kann man durch die Anpassung der Konfiguration auch noch einiges zum Standard einsparen.

                  Der Wert für den node-red-Adapter betrifft nur den ioBroker-Adapter, nicht jedoch den node-red-Prozess selbst. Dieser wird vom Adapter mit –max-old-space-size=128 gestartet.

                  1 Reply Last reply Reply Quote 0
                  • L
                    looxer01 last edited by

                    gab bzw gibt es denn Unterschiede bei der Garbage Collection, je nach verwendeter Linux Version ?

                    Das könnte ja das unterschiedliche Verhalten (Stabilitaet) erklären. Andersherum, wenn das nicht der Fall ist, dann erklärt es das nicht.

                    vG Looxer

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

                      Die Garbage Collection hängt in erster Linie an V8 und somit an der node.js-Version.

                      Bei den node.js-Versionen gibt es zumindest subjektiv erhebliche Unterschiede. Während die 0.10.x wohl auch mit dem geringen Speicher noch einiger Maßen zurecht gekommen ist, haben die von mir ausprobierten Version von 0.12.x fast alle mehr oder weniger häufig zu Abstützen geführt. Problem ist nur, dass mittlerweile viele node.js-Module mindestens eine 0.12.x voraussetzen. Auch wird der Stream 0.10.x nicht mehr weiterentwickelt und enhält keine Fixes mehr.

                      Die node.js-Version 4.2.x basiert nicht direkt auf 0.12.x sondern auf den wieder integrierten Parallelprojekt io.js und läuft subjektiv stabiler als 0.12.x, hat aber auch das Problem, dass der Speicher irgendwann aufgebraucht ist. Ich mutmaße mal, dass dies generell an den neueren V8-Versionen liegt, die einfach per Default für mehr Hauptspeicher und nur wenige parallel laufende Prozesse optimiert sind. Deswegen sind die obigen Speicherlimitierungen wichtig.

                      Generell würde ich heute für den Raspi 2b zum Jessie-Image mit node.js 4.2.6 raten. Das ist die aktuelle Long Term stable Version, die noch mit Fixes versorgt wird. Diese läuft sowohl mit ioBroker als auch mit dem aktuellen node-red 13.1 sehr gut zusammen.

                      In node.js 5.x hat jedoch zu viele Änderungen drin und ist absolut nicht zu empfehlen.

                      Alle aktuellen node.js-Versionen werden übrigens für Debian Jessie und somit auch für das aktuelle Raspbian-Image über den Package-Manager angeboten. Das hat den Vorteil, dass man sich über Updates und Kompatibilitäten weniger Gedanken machen braucht. Im Standard ist die 0.12.x LTS enthalten, für 4.2.x LTS muss folgendes einmal ausgeführt werden:

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

                      Die LTS-Versionen werden nur noch mit Fixes versorgt, bekommen aber keine neuen Feature mehr. Somit ist das Risiko, dass ein Update zu Inkompatibilitäten führt, eher gering.

                      https://nodejs.org/en/download/package- … tributions

                      Generell lassen sich viele Fehler vermeiden, wenn man die npm-Pakete bei der Installation selber baut oder wenigstens als Fallback bauen kann. Dafür muss dann auch noch folgende installiert werden:

                      sudo apt-get install -y build-essential
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • L
                        looxer01 last edited by

                        …danke nobody. Das ist mal ne super Erklärung (und Empfehlung)

                        und erklärt auch warum ich keine Probleme habe.

                        Einschränkungen habe ich bisher in keiner Weise bemerkt.

                        Das heisst aber wohl, dass es durchaus zu Problemen bei zukünftigen updates von iobroker bei mir kommen kann.

                        Ich denke, dass ich das mal abwarte. Stabil ist besser als labil 🙂

                        vG Looxer

                        1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer last edited by

                          @Nobody,

                          danke für dein Erklärungen die sind sehr aufschlußreich.

                          Bei einem Punkt hab ich aber andere Erfahrungen gemacht und ich glaube das Problem haben auch andere und wissen es nicht.
                          @nobody:

                          Im Standard ist die 0.12.x LTS enthalten `
                          Bei meinen Installationen ist mir aufgefallen das bereits eine Node.js Version installiert ist, wenn man Debian Jessie auf dem Pi installiert.

                          Es handelt sich um eine 0.10.x Version, diese lässt sich weder mit apt-get deinstallieren noch updaten. Auch ersetzen klappt nicht immer richtig weil die Symlinks erhalten bleiben, ebenso wie die PATH Variable(n).

                          Erst mit dem deb-Paket von nodesource hat es dann Funktioniert.

                          Hier mal meine Specs:

                          ! Hardware: CCU2, RPi2 mit SSD
                          ! Software: Debian Jessie (offizielle Version, nicht minimal), nodejs v4.2.1, npm v2.14.7, CCU2 2.15.2 + CUxD 0.9
                          ! ioBroker:
                          ! js-controller 0.8.4
                          ! system.adapter.admin : admin - 0.7.3
                          ! system.adapter.hm-rpc : hm-rpc - 0.5.2
                          ! system.adapter.hm-rega : hm-rega - 0.2.2
                          ! system.adapter.harmony : harmony - 0.5.5
                          ! system.adapter.web : web - 1.3.4
                          ! system.adapter.icons-addictive-flavour-png: icons-addictive-flavour-png - 0.1.0
                          ! system.adapter.icons-material-png : icons-material-png - 0.1.0
                          ! system.adapter.icons-material-svg : icons-material-svg - 0.1.0
                          ! system.adapter.icons-mfd-png : icons-mfd-png - 0.1.2
                          ! system.adapter.icons-mfd-svg : icons-mfd-svg - 0.1.2
                          ! system.adapter.icons-ultimate-png : icons-ultimate-png - 0.1.0
                          ! system.adapter.javascript : javascript - 1.1.4
                          ! system.adapter.sayit : sayit - 0.3.16
                          ! system.adapter.scenes : scenes - 0.2.4
                          ! system.adapter.sonos : sonos - 0.1.7
                          ! system.adapter.vis : vis - 0.8.4
                          ! system.adapter.vis-bars : vis-bars - 0.1.1
                          ! system.adapter.vis-colorpicker : vis-colorpicker - 0.1.1
                          ! system.adapter.vis-fancyswitch : vis-fancyswitch - 0.1.0
                          ! system.adapter.vis-google-fonts : vis-google-fonts - 0.1.0
                          ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
                          ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
                          ! system.adapter.vis-keyboard : vis-keyboard - 0.0.2
                          ! system.adapter.vis-lcars : vis-lcars - 0.1.6
                          ! system.adapter.vis-metro : vis-metro - 0.2.0
                          ! system.adapter.vis-plumb : vis-plumb - 0.1.6
                          ! system.adapter.vis-rgraph : vis-rgraph - 0.0.2
                          ! system.adapter.vis-timeandweather : vis-timeandweather - 0.0.2
                          ! Und da die Frage eh kommt wie man eine Liste aller Adapter in Textform bekommt ohne zu Tippen, hier die Lösung:
                          ! im Terminal "iobroker list adapters" eingeben.
                          ! free -m zeigt bei mir folgendes an:
                          ! total used free shared buffers cached
                          ! Mem: 925 808 117 18 78 182
                          ! -/+ buffers/cache: 547 378
                          ! Swap: 99 0 99

                          1 Reply Last reply Reply Quote 0
                          • A
                            aquapro last edited by

                            Danke nobody!

                            Ich hab auf meinen beiden BananaPi Jessie drauf, mit node v0.12.6 .

                            Nach Deiner Meinung sollte v4.2.6 die bessere Wahl sein?!

                            Anbei mal zwei screens der Bananen (top sortiert nach Speicher).

                            Wobei z.B. der Speicherfresser history.0 schon mit RAMLimit 80 versorgt ist.

                            Nur versteh ich die Anzeige dann nicht, sieht mehr als 80 aus.

                            admin.0 läuft auf master, history.0 auf client.

                            ! filename="top3.PNG" index="1">~~
                            filename="top3a.PNG" index="0">~~
                            ! system.adapter.admin : admin - 0.7.3
                            ! system.adapter.hm-rpc : hm-rpc - 0.5.2
                            ! system.adapter.hm-rega : hm-rega - 0.2.2
                            ! system.adapter.history : history - 0.2.1
                            ! system.adapter.web : web - 1.3.4
                            ! system.adapter.vis : vis - 0.8.4
                            ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
                            ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
                            ! system.adapter.rickshaw : rickshaw - 0.3.1
                            ! system.adapter.fritzbox : fritzbox - 0.2.1
                            ! system.adapter.ical : ical - 1.1.1

                            1 Reply Last reply Reply Quote 0
                            • A
                              aquapro last edited by

                              @Jey Cee

                              Ich hab gar nicht geschaut, was bei meinem Jessie drauf war. Gleich die Befehle von der iobroker Installseite genommen.

                              wget http://www.iobroker.net/wp-content/uploads/2015/09/nodejs0_12_6_armhf.deb
                              dpkg -i nodejs0_12_6_armhf.deb
                              rm nodejs0_12_6_armhf.deb
                              
                              

                              Und keinen Fehler bekommen und node -v zeigt v0.12.6 .

                              Hab ich jetzt ein verstecktes Problem und deshalb die Fehler?

                              Gruß

                              Tino

                              1 Reply Last reply Reply Quote 0
                              • Jey Cee
                                Jey Cee Developer last edited by

                                @aquapro: Ist definitiv mehr. Zum übernehmen der RAM Einstellungen muss mindestens der Adapter neu gestartet werden evtl. ist auch ein Kompletter Neustart sinnvoll.

                                Also wenn die richtige Node Version angezeigt wird sollte alles im grünen Bereich sein. Da er dann die gewollte Node installation anspricht.

                                Ich weiss leider nicht mehr in welchem ordner die vor installierte Node version war, aber ich versuch das mal heraus zu finden.

                                Weiss jemand was die spalte Time+ bei Top aussagt? Ist das die Uptime des angezeigten dienstes?

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

                                  Das ist ja mal eine spitzenmäßige Zusammenfassung zum Speicherthema. So langsam verstehe sogar ich die RasPi-Geschichte 😉

                                  Ich habe jetzt gerade mal meine Node-Version ermittelt. Es ist die 0.10.22 - sollte ich da mal updaten?

                                  Obwohl meine Installation leidlich läuft, zumindest wenn ich nach Updates genügend Reboots gemacht habe… 😉

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    @Thisoft:

                                    ch habe jetzt gerade mal meine Node-Version ermittelt. Es ist die 0.10.22 - sollte ich da mal updaten? `
                                    die habe ich auch und überhaupt keine Probleme. Nach den Erklärungen von nobody werde ich productiv zunächst nix updaten.

                                    Endlich haben wir eine neue Empfehlung für die Installation. Die muss aber noch von den Nutzern mit instabilen Installationen hier bestätigt werden - meine ich.

                                    vG Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • Jey Cee
                                      Jey Cee Developer last edited by

                                      Ich hab mal auf meinem Pi1 Jessie installiert und nach der Node version geschaut, die ist 0.10.29. Damit sollte ioBroker ja laufen.

                                      Wenn diese Version drauf ist findet man in /usr/bin den Link node der auf nodejs im selben ordner verweisst und unter /usr/lib die Ordner nodejs und node_modules.

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

                                        @aquapro:

                                        Danke nobody!

                                        Ich hab auf meinen beiden BananaPi Jessie drauf, mit node v0.12.6 .

                                        Nach Deiner Meinung sollte v4.2.6 die bessere Wahl sein?!

                                        Anbei mal zwei screens der Bananen (top sortiert nach Speicher).

                                        Wobei z.B. der Speicherfresser history.0 schon mit RAMLimit 80 versorgt ist.

                                        Nur versteh ich die Anzeige dann nicht, sieht mehr als 80 aus.

                                        admin.0 läuft auf master, history.0 auf client.

                                        ! filename="top3.PNG" index="1">~~
                                        filename="top3a.PNG" index="0">~~
                                        ! system.adapter.admin : admin - 0.7.3
                                        ! system.adapter.hm-rpc : hm-rpc - 0.5.2
                                        ! system.adapter.hm-rega : hm-rega - 0.2.2
                                        ! system.adapter.history : history - 0.2.1
                                        ! system.adapter.web : web - 1.3.4
                                        ! system.adapter.vis : vis - 0.8.4
                                        ! system.adapter.vis-hqwidgets : vis-hqwidgets - 0.2.5
                                        ! system.adapter.vis-jqui-mfd : vis-jqui-mfd - 0.1.0
                                        ! system.adapter.rickshaw : rickshaw - 0.3.1
                                        ! system.adapter.fritzbox : fritzbox - 0.2.1
                                        ! system.adapter.ical : ical - 1.1.1 `
                                        Nein, wenn du mit dieser Version keine Probleme hast, gibt es keinen Grund zu wechseln. Ich bin von der 0.12.9 auf die 4.2.x gewechselt, weil ich ohne die Begrenzungen immer Abstürze hatte. Die gibt es aber mit der 4.2.6 auch.

                                        Die LTS Versionen haben halt den Vorteil, dass diese noch gepflegt werden. Das ist vor allem dann wichtig, wenn das System auch über das Internet erreichbar ist. Bei mir ist der pi gleichzeitig Reverse proxy für alle Systeme und openvpn-Server.

                                        Wenn ich vorhin den Eindruck erweckt habe, dass man mit den Einstellungen direkt auf die Größe des Prozesses schließen kann, hab ich mich falsch ausgedrückt. Der Parameter max-old-space-size der damit gesetzt wird legt die maximale Größe des Heap fest, bei dem die Garbage Collection gestartet wird. Dies betrifft aber nur den Heap, vereinfacht ausgedrückt der Platz für Variablen. Darin nicht enthalten sind node.js, der Anwendungscode und der Platz für alle inkludierten Libs. Auch kann nur das frei gegeben werden, was nicht mehr verlinkt ist.

                                        Gerade Beim history - Adapter werden viele Daten im RAM gehalten.

                                        Gesendet von meinem GT-N8000 mit Tapatalk

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

                                          @Jey Cee:

                                          Ich hab mal auf meinem Pi1 Jessie installiert und nach der Node version geschaut, die ist 0.10.29. Damit sollte ioBroker ja laufen.

                                          Wenn diese Version drauf ist findet man in /usr/bin den Link node der auf nodejs im selben ordner verweisst und unter /usr/lib die Ordner nodejs und node_modules. `
                                          Ich hab mal bei Debian nachgesehen. Offiziell ist wirklich noch die 0.10.29. Ich hab wohl irgendwann mal das Repository von nodesource.com aufgenommen…

                                          Gesendet von meinem GT-N8000 mit Tapatalk

                                          1 Reply Last reply Reply Quote 0
                                          • V
                                            versteckt last edited by

                                            Hallo, habe heute für einen Arbeitskollegen erst einen Raspbian (Raspi 2) aufgesetzt.

                                            Dort ist eine 4er Node Version von http://weworkweplay.com/play/raspberry-pi-nodejs/ drauf.

                                            LG Christian

                                            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

                                            740
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            28
                                            5244
                                            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