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

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. EXPERIMENTELL: JsonL Datenbank für js-controller

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.5k

EXPERIMENTELL: JsonL Datenbank für js-controller

Geplant Angeheftet Gesperrt Verschoben Tester
187 Beiträge 20 Kommentatoren 29.3k Aufrufe 28 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.
  • crunchipC crunchip

    @apollon77 hab ich nicht gemacht, iobroker wieder gestartet, wollte mich lieber vorher versichern bzw nachfragen:wink:

    root@IoBroker:/opt/iobroker# npm ls --all |grep "iobroker/db"
    npm ERR! extraneous: @types/request@2.48.1 /opt/iobroker/node_modules/@types/request
    npm ERR! extraneous: alcalzone-shared@2.3.0 /opt/iobroker/node_modules/alcalzone-shared
    npm ERR! extraneous: alexa-remote2@2.5.3 /opt/iobroker/node_modules/alexa-remote2
    npm ERR! extraneous: anyproxy@4.1.0 /opt/iobroker/node_modules/anyproxy
    npm ERR! extraneous: bottleneck@2.19.2 /opt/iobroker/node_modules/bottleneck
    npm ERR! extraneous: castv2-player@2.0.5 /opt/iobroker/node_modules/castv2-player
    npm ERR! extraneous: coffee-compiler@0.3.2 /opt/iobroker/node_modules/coffee-compiler
    npm ERR! extraneous: coffee-script@1.12.7 /opt/iobroker/node_modules/coffee-script
    npm ERR! extraneous: express-fileupload@0.4.1 /opt/iobroker/node_modules/express-fileupload
    npm ERR! extraneous: iobroker-react-components@1.0.0 /opt/iobroker/node_modules/iobroker-react-components
    npm ERR! extraneous: js2xmlparser@3.0.0 /opt/iobroker/node_modules/js2xmlparser
    npm ERR! extraneous: mongodb@3.2.7 /opt/iobroker/node_modules/mongodb
    npm ERR! extraneous: node-hue-api@2.4.6 /opt/iobroker/node_modules/node-hue-api
    npm ERR! extraneous: node-inspect@2.0.0 /opt/iobroker/node_modules/node-inspect
    npm ERR! extraneous: node-red@0.20.7 /opt/iobroker/node_modules/node-red
    npm ERR! extraneous: node-red-contrib-aggregator@1.5.0 /opt/iobroker/node_modules/node-red-contrib-aggregator
    npm ERR! extraneous: node-red-contrib-os@0.1.7 /opt/iobroker/node_modules/node-red-contrib-os
    npm ERR! extraneous: node-red-contrib-polymer@0.0.21 /opt/iobroker/node_modules/node-red-contrib-polymer
    npm ERR! extraneous: node-red-dashboard@2.15.5 /opt/iobroker/node_modules/node-red-dashboard
    npm ERR! extraneous: portfinder@1.0.20 /opt/iobroker/node_modules/portfinder
    npm ERR! extraneous: rpi-gpio@2.1.3 /opt/iobroker/node_modules/rpi-gpio
    npm ERR! extraneous: sync-exec@0.6.2 /opt/iobroker/node_modules/sync-exec
    npm ERR! extraneous: systeminformation@4.14.4 /opt/iobroker/node_modules/systeminformation
    npm ERR! extraneous: typescript@3.5.1 /opt/iobroker/node_modules/typescript
    npm ERR! extraneous: virtual-device-sdk@1.5.18 /opt/iobroker/node_modules/virtual-device-sdk
    npm ERR! extraneous: virtual-tsc@0.6.1 /opt/iobroker/node_modules/virtual-tsc
    npm ERR! extraneous: vm2@3.8.1 /opt/iobroker/node_modules/vm2
    npm ERR! extraneous: wake_on_lan@1.0.0 /opt/iobroker/node_modules/wake_on_lan
    npm ERR! extraneous: zigbee-herdsman-converters@14.0.110 /opt/iobroker/node_modules/zigbee-herdsman-converters
    npm ERR! extraneous: zigbee-shepherd@0.3.0 /opt/iobroker/node_modules/zigbee-shepherd
    npm ERR! extraneous: zigbee-shepherd-converters@10.1.9 /opt/iobroker/node_modules/zigbee-shepherd-converters
    npm ERR! extraneous: @alcalzone/release-script@1.8.3 /opt/iobroker/node_modules/iobroker.javascript/node_modules/@alcalzone/release-script
    npm ERR! extraneous: chai@4.3.4 /opt/iobroker/node_modules/iobroker.javascript/node_modules/chai
    npm ERR! extraneous: del@6.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/del
    npm ERR! extraneous: eslint@7.23.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/eslint
    npm ERR! extraneous: gulp@4.0.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp
    npm ERR! extraneous: gulp-rename@2.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-rename
    npm ERR! extraneous: gulp-replace@1.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-replace
    npm ERR! extraneous: mocha@8.3.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/mocha
    npm ERR! extraneous: timekeeper@2.2.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/timekeeper
    npm ERR! peer dep missing: date-fns@^2.0.0, required by @date-io/date-fns@1.3.13
    npm ERR! peer dep missing: @material-ui/core@^4.0.0, required by @material-ui/pickers@3.2.10
    npm ERR! peer dep missing: react@^16.8.4, required by @material-ui/pickers@3.2.10
    npm ERR! peer dep missing: react-dom@^16.8.4, required by @material-ui/pickers@3.2.10
    npm ERR! peer dep missing: react@>=16.6.0, required by react-transition-group@4.4.1
    npm ERR! peer dep missing: react@>=16.8, required by rifm@0.7.0
    npm ERR! peer dep missing: react-dom@>=16.6.0, required by react-transition-group@4.4.1
    │ ├─┬ @iobroker/db-objects-file@1.1.4
    │ │ ├─┬ @iobroker/db-base@1.1.4
    │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped
    │ ├─┬ @iobroker/db-objects-jsonl@1.1.5
    │ │ ├─┬ @iobroker/db-base@1.1.4
    │ │ ├─┬ @iobroker/db-objects-file@1.1.4
    │ │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped
    │ │ ├─┬ @iobroker/db-objects-redis@1.1.4
    │ │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ ├─┬ @iobroker/db-objects-redis@1.1.4
    │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ ├─┬ @iobroker/db-states-file@1.1.4
    │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ │ └── @iobroker/db-states-redis@1.1.4 deduped
    │ ├─┬ @iobroker/db-states-jsonl@1.1.5
    │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ │ ├─┬ @iobroker/db-states-file@1.1.4
    │ │ │ ├── @iobroker/db-base@1.1.4 deduped
    │ │ │ └── @iobroker/db-states-redis@1.1.4 deduped
    │ │ └─┬ @iobroker/db-states-redis@1.1.4
    │ │   ├── @iobroker/db-base@1.1.4 deduped
    │ ├─┬ @iobroker/db-states-redis@1.1.4
    │ │ ├── @iobroker/db-base@1.1.4 deduped
    root@IoBroker:/opt/iobroker#
    
    
    apollon77A Offline
    apollon77A Offline
    apollon77
    schrieb am zuletzt editiert von
    #158

    @crunchip Na dann bin ich erstmal bei der Annahme das es an dem liegt was einige User schonmal hatten: Editiere mal in der iobroker.json das "connectTimeout" unter states und objects und seite es auf 10000

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    crunchipC 1 Antwort Letzte Antwort
    1
    • apollon77A apollon77

      @crunchip Na dann bin ich erstmal bei der Annahme das es an dem liegt was einige User schonmal hatten: Editiere mal in der iobroker.json das "connectTimeout" unter states und objects und seite es auf 10000

      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #159

      @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

      das "connectTimeout" unter states und objects und seite es auf 10000

      das gibts bei mir nur unter objects?

      "objects": {
          "type": "jsonl",
          "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].",
          "host": "127.0.0.1",
          "port": 9001,
          "user": "",
          "pass": "",
          "noFileCache": false,
          "connectTimeout": 10000,
          "dataDir": "../../iobroker-data/",
          "options": {
          "auth_pass": null,
          "retry_max_delay": 5000
          }
        },
        "states": {
          "type": "jsonl",
          "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].",
          "host": "127.0.0.1",
          "port": 9000,
          "maxQueue": 1000,
          "options": {
            "auth_pass": null,
            "retry_max_delay": 5000
          },
          "dataDir": "../../iobroker-data/"
      

      umgestiegen von Proxmox auf Unraid

      apollon77A 1 Antwort Letzte Antwort
      0
      • crunchipC crunchip

        @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

        das "connectTimeout" unter states und objects und seite es auf 10000

        das gibts bei mir nur unter objects?

        "objects": {
            "type": "jsonl",
            "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].",
            "host": "127.0.0.1",
            "port": 9001,
            "user": "",
            "pass": "",
            "noFileCache": false,
            "connectTimeout": 10000,
            "dataDir": "../../iobroker-data/",
            "options": {
            "auth_pass": null,
            "retry_max_delay": 5000
            }
          },
          "states": {
            "type": "jsonl",
            "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].",
            "host": "127.0.0.1",
            "port": 9000,
            "maxQueue": 1000,
            "options": {
              "auth_pass": null,
              "retry_max_delay": 5000
            },
            "dataDir": "../../iobroker-data/"
        
        apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #160

        @crunchip Kannst es bei states mit einfügen,aber denke ist eh am relevantesten bei Objects

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        crunchipC 2 Antworten Letzte Antwort
        0
        • apollon77A apollon77

          @crunchip Kannst es bei states mit einfügen,aber denke ist eh am relevantesten bei Objects

          crunchipC Abwesend
          crunchipC Abwesend
          crunchip
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #161

          @apollon77 ok, mach ich und teste mal

          umgestiegen von Proxmox auf Unraid

          1 Antwort Letzte Antwort
          0
          • apollon77A apollon77

            @crunchip Kannst es bei states mit einfügen,aber denke ist eh am relevantesten bei Objects

            crunchipC Abwesend
            crunchipC Abwesend
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #162

            @apollon77 soll ich danach `connenctTimeout wieder zurückstellen?
            update ist durch, was mich aber gewundert hat, iobroker lief selbstständig wieder an, ohne iobroker start?
            wollte eigentlich noch nen iobroker fix hinterher schieben

            umgestiegen von Proxmox auf Unraid

            apollon77A 1 Antwort Letzte Antwort
            0
            • crunchipC crunchip

              @apollon77 soll ich danach `connenctTimeout wieder zurückstellen?
              update ist durch, was mich aber gewundert hat, iobroker lief selbstständig wieder an, ohne iobroker start?
              wollte eigentlich noch nen iobroker fix hinterher schieben

              apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #163

              @crunchip Ja beim ersten update von <3.3 auf 3.3 passiert das. danach nicht mehr. das timeout kann wieder runtergesetzt werden

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              1
              • apollon77A apollon77

                Hallo,

                der neue js-controller 3.2 beinhaltet unter der Haube einige Änderungen und Aufräumarbeiten. EIne große davon ist, dass wir die Datenbank-Bibliotheken modularisiert haben und künftig flexibler zu sein und einfacher weitere Arten der Speicherung bereitstellen können.

                Jetzt wo der js-controller mit 3.2.16 fast schon stable ist möchten wir eine erste solche neue Datenbank, die wir gerade experimentell ausprobieren mal vorstellen und vor allem den Usern mit dem Ziel die "Schreiblast bestmöglich zu verringern" (siehe https://forum.iobroker.net/topic/41128/iobroker-sehr-hohe-diskwrites-in-proxmox) anbieten das mal zu testen.
                Wenn alles klappt wird das im js-controller 3.3 vllt die neue Standard Datenbank ... mal sehen :-)

                Diese neue Datenbank benutzt eine Bibliothek von @AlCalzone, welche das File nicht in definierten Abständen einfach neu schreibt, sondern erst einmal neue Daten anhängt (mindestens jede Minute oder nach Erreichen einer bestimmten Anzahl an Änderungen). Dann nach einer gewissen Anzahl an gesamten Änderungen wird das File komprimiert und neu geschrieben.
                Mit diesem AOF-(Append Only File) Ansatz sollte sich die Schreiblast noch mehr verringern als wir es mit der letzten controller Optimierung geschafft haben.

                Das ganze ist alles noch EXPERIMENTELL, also auf eigene Gefahr, läuft bei uns aber schon in Testsystemen stabil. Feature Technisch gibt es noch ein paar Dinge zu tun (wie zB gepackte Backups und s ... das kommt noch)

                Wie bekommt man es:

                • WENN js-controller 3.2.16 ist (bei js-controller 3.3 NICHT nötig!!)
                  • Sicherstellen das mindestens js-controller 3.2.16 installiert ist
                  • cd /opt/iobroker/node_modules/iobroker.js-controller
                  • npm i @iobroker/db-states-jsonl @iobroker/db-objects-jsonl
                  • ACHTUNG: wer npm 7 hat bitte VOR der Installation mal hier melden weil es scheinbar mit dem hier genannten Vorgehen Probleme geben kann.
                • ioBroker stoppen
                • iobroker setup custom
                  • Bei multihost der master zuerst
                  • hier als db type "jsonl" eingeben bei beiden/dengewünschten DBs, Port Angaben und so einfach lassen wie vorher
                  • dann Wählen (beim mster bzw single host sowieso) das er migriert (Bei Slaves natürlich keine Migration)
                • Danach sollte in /opt/iobroker/iobroker-data eine objects.jsonl und states.jsonl liegen (parallel zu den alten json files)
                • iobroker starten ... i/o beobachten :-)
                • die jsonl Files werden zuerst wachsen und dann nach einiger Zeit wieder kleiner werden

                @AlCalzone und ich sind gespannt auf Eure I/O Erfahrungen :-)

                Ingo und AlCalzone

                FredFF Online
                FredFF Online
                FredF
                Most Active Forum Testing
                schrieb am zuletzt editiert von
                #164

                @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                Wenn alles klappt wird das im js-controller 3.3 vllt die neue Standard Datenbank ... mal sehen

                Ich nutze jsonl nun von Anfang an und kann nichts negatives berichten, es läuft einfach :+1:
                Wie es denn hier der Stand? Standard oder nicht? Es gibt ja einige die redis noch nutzen...

                apollon77A 1 Antwort Letzte Antwort
                0
                • FredFF FredF

                  @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                  Wenn alles klappt wird das im js-controller 3.3 vllt die neue Standard Datenbank ... mal sehen

                  Ich nutze jsonl nun von Anfang an und kann nichts negatives berichten, es läuft einfach :+1:
                  Wie es denn hier der Stand? Standard oder nicht? Es gibt ja einige die redis noch nutzen...

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #165

                  @fredf laaamngsam … keine Äpfel mit Birnen vergleichen bitte. Der Controller 4 wechselt vielleicht (!!!!) bei filedb automatisch auf jsonl. Das sehen wir noch …

                  Und auch dann hat redis seine Zielgruppe. Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  Thomas BraunT 1 Antwort Letzte Antwort
                  0
                  • apollon77A apollon77

                    @fredf laaamngsam … keine Äpfel mit Birnen vergleichen bitte. Der Controller 4 wechselt vielleicht (!!!!) bei filedb automatisch auf jsonl. Das sehen wir noch …

                    Und auch dann hat redis seine Zielgruppe. Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                    Thomas BraunT Online
                    Thomas BraunT Online
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von
                    #166

                    @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                    Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                    Gibt es dahingehend Vorschläge oder Einschätzungen, wann welches Tool angebracht sein könnte?

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    AlCalzoneA 1 Antwort Letzte Antwort
                    0
                    • ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                      #167

                      @apollon77

                      hab das gerade mal versucht von redis auf jsonl umzustellen, er bricht mir ab mit dem Fehler, dass iobroker noch laufen wuerde..
                      dabei habe ich vorher ein iobroker fix gemacht und er ist durch gelaufen.

                      Dann nochmal versucht, wieder das gleiche. Js-controller ist 3.3.22, Rest auf Beta.

                      ilovegym@VMC123-iobroker /opt/iobroker $ iobroker stop
                      ilovegym@VMC123-iobroker /opt/iobroker $ iobroker status
                      iobroker is not running on this host.
                      
                      At least one iobroker host is running.
                      
                      Objects type: redis
                      States  type: redis
                      ilovegym@VMC123-iobroker /opt/iobroker $ iobroker setup custom
                      Current configuration:
                      - Objects database:
                        - Type: redis
                        - Host/Unix Socket: 127.0.0.1
                        - Port: 6379
                      - States database:
                        - Type: redis
                        - Host/Unix Socket: 127.0.0.1
                        - Port: 6379
                      
                      Type of objects DB [(f)ile, (r)edis, ...], default [redis]: jsonl
                      Host / Unix Socket of objects DB(jsonl), default[127.0.0.1]:
                      Port of objects DB(jsonl), default[9001]:
                      Type of states DB [(f)file, (r)edis, ...], default [jsonl]:
                      Host / Unix Socket of states DB (jsonl), default[127.0.0.1]:
                      Port of states DB (jsonl), default[9000]:
                      Data directory (file), default[../../iobroker-data/]:
                      Host name of this machine [VMC123-iobroker]:
                      It appears that you want to convert this slave host into a Master or Single host system. Is this correct? [Y/n]: y
                      
                      Do you want to migrate objects and states from "redis/redis" to "jsonl/jsonl" [y/N]: y
                      
                      Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y
                      
                      Connecting to previous DB "redis"...
                      
                      Cannot migrate DB while js-controller is still running!
                      Please stop ioBroker and try again. No settings have been changed.
                      ilovegym@VMC123-iobroker /opt/iobroker $ ps -aux
                      USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
                      root           1  0.0  0.1  22000  9800 ?        Ss   15:49   0:00 /sbin/init
                      root          56  0.0  0.2  29588 12376 ?        Ss   15:50   0:00 /lib/systemd/systemd-journald
                      _rpc          94  0.0  0.0   6828  3536 ?        Ss   15:50   0:00 /sbin/rpcbind -f -w
                      root          97  0.0  0.0 225828  3488 ?        Ssl  15:50   0:00 /usr/sbin/rsyslogd -n -iNONE
                      message+      99  0.0  0.0   8976  4280 ?        Ss   15:50   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-onl
                      root         103  0.0  0.0   4684  3768 ?        Ss   15:50   0:00 /bin/bash /opt/iobroker/wetterstation.sh
                      root         104  0.0  0.1  19528  7116 ?        Ss   15:50   0:00 /lib/systemd/systemd-logind
                      root         179  0.0  0.0  76472  3064 ?        Ssl  15:50   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 110:116
                      root         180  0.0  0.1  15856  6860 ?        Ss   15:50   0:00 /usr/sbin/sshd -D
                      redis        184  0.0 15.6 1197652 939944 ?      Ssl  15:50   1:03 /usr/bin/redis-server 0.0.0.0:6379
                      root         345  0.0  0.0  43480  3920 ?        Ss   15:50   0:00 /usr/lib/postfix/sbin/master -w
                      postfix      347  0.0  0.1  43820  7060 ?        S    15:50   0:00 pickup -l -t unix -u -c
                      postfix      348  0.0  0.1  43872  7188 ?        S    15:50   0:00 qmgr -l -t unix -u
                      root         355  0.0  0.0   5516  2160 ?        Ss   15:50   0:00 /usr/sbin/cron -f
                      root         356  0.0  0.0   2424  1544 pts/0    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud console 115200,38400,9600 linux
                      root         357  0.0  0.0   2424  1664 pts/2    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty2 115200,38400,9600 linux
                      root         358  0.0  0.0   2424  1656 pts/1    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty1 115200,38400,9600 linux
                      root         360  0.0  0.0   6428  2240 ?        S    15:50   0:00 /usr/sbin/CRON -f
                      root         373  0.0  0.0   2392   748 ?        Ss   15:50   0:00 /bin/sh -c sleep 600 && systemctl start wetterstation
                      root         375  0.0  0.0   2300   736 ?        S    15:50   0:00 sleep 600
                      root         382  0.0  0.0 829944  5516 ?        Ssl  15:50   0:00 adb -L tcp:5037 fork-server server --reply-fd 4
                      root         474  0.0  0.1  16636  7720 ?        Ss   15:50   0:00 sshd: ilovegym [priv]
                      root         487  0.0  0.1  16636  7620 ?        Ss   15:50   0:00 sshd: ilovegym [priv]
                      ilovegym     489  0.0  0.1  21164  8968 ?        Ss   15:50   0:00 /lib/systemd/systemd --user
                      ilovegym     490  0.0  0.0  23116  2332 ?        S    15:50   0:00 (sd-pam)
                      ilovegym     513  0.0  0.0  16920  5008 ?        S    15:50   0:00 sshd: ilovegym@notty
                      ilovegym     514  0.0  0.1  17104  6072 ?        R    15:50   0:00 sshd: ilovegym@pts/3
                      ilovegym     515  0.0  0.0   2460  1724 ?        Ss   15:50   0:00 /usr/lib/openssh/sftp-server
                      ilovegym     516  0.0  0.0   5508  4708 pts/3    Ss   15:50   0:00 -bash
                      ilovegym     517  0.0  0.0   3656  2652 ?        Ss   15:50   0:00 bash -c while true; do sleep 1;head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/
                      root        2867  0.0  0.0   2300   740 ?        S    15:54   0:00 sleep 30
                      ilovegym    2957  0.0  0.0   2300   676 ?        S    15:54   0:00 sleep 1
                      ilovegym    2958  0.0  0.0   7928  2760 pts/3    R+   15:54   0:00 ps -aux
                      ilovegym@VMC123-iobroker /opt/iobroker $ iobroker setup custom
                      Current configuration:
                      - Objects database:
                        - Type: redis
                        - Host/Unix Socket: 127.0.0.1
                        - Port: 6379
                      - States database:
                        - Type: redis
                        - Host/Unix Socket: 127.0.0.1
                        - Port: 6379
                      
                      Type of objects DB [(f)ile, (r)edis, ...], default [redis]: jsonl
                      Host / Unix Socket of objects DB(jsonl), default[127.0.0.1]:
                      Port of objects DB(jsonl), default[9001]:
                      Type of states DB [(f)file, (r)edis, ...], default [jsonl]:
                      Host / Unix Socket of states DB (jsonl), default[127.0.0.1]:
                      Port of states DB (jsonl), default[9000]:
                      Data directory (file), default[../../iobroker-data/]:
                      Host name of this machine [VMC123-iobroker]:
                      It appears that you want to convert this slave host into a Master or Single host system. Is this correct? [Y/n]: y
                      
                      Do you want to migrate objects and states from "redis/redis" to "jsonl/jsonl" [y/N]: y
                      
                      Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y
                      
                      Connecting to previous DB "redis"...
                      
                      Cannot migrate DB while js-controller is still running!
                      Please stop ioBroker and try again. No settings have been changed.
                      ilovegym@VMC123-iobroker /opt/iobroker $ iobroker start
                      
                      
                      1 Antwort Letzte Antwort
                      0
                      • Thomas BraunT Thomas Braun

                        @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                        Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                        Gibt es dahingehend Vorschläge oder Einschätzungen, wann welches Tool angebracht sein könnte?

                        AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        schrieb am zuletzt editiert von
                        #168

                        @thomas-braun sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                        Gibt es dahingehend Vorschläge oder Einschätzungen, wann welches Tool angebracht sein könnte?

                        Nach aktuellen Benchmarks hat JSONL etwas weniger Durchsatz als die File DB (obwohl die Tests auch etwas unfair sind, da File DB in fixen Abständen die komplette DB neu schreibt). JSONL hingegen schreibt nur Änderungen, dafür in Stoßzeiten ggf. häufiger.

                        Grundsätzlich würde ich sagen (JSONL vs. File):
                        ➕ JSONL ist resistenter. Ein kaputtes Byte in der DB macht nicht alles kaputt und ein Absturz beim Schreibvorgang sorgt nur dafür, dass die ausstehenden Änderungen verloren gehen, nicht alles.
                        ➕ JSONL schont die SD-Karte durch weniger und kleinere Schreibvorgänge (nur wenn nötig)
                        ➖ JSONL braucht zumindest phasenweise etwas mehr Platz (die DB ist bis auf Kompaktierungsvorgänge append-only)
                        ➖ JSONL braucht etwas länger, wenn viele Objekte in kurzer Zeit geschrieben werden sollen (wobei meine letzten Tests nur noch Unterschiede im Rahmen der Standardabweichung ergeben haben)

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        1 Antwort Letzte Antwort
                        0
                        • apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von apollon77
                          #169

                          @thomas-braun Am Ende geht es um den Durchsatz im System, welches primär CPU-basiert ist und um den I/O und RAM verbrauch (am Ende ein gewisses Dreieck der varianten).

                          Ich hatte es versucht mal grob in https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick anzudeuten, aber der aktuelle Stand wäre grob wie folgt (für eine DB Reinform -also Objects und States umgestellt):

                          • Redis: 20+% mehr Durchsatz weil optimierte Datenbank-Engine (und kein JavaScript); noch mehr wenn man States und Objects in zwei Redis-Prozesse trennt, da Redis auch grundsätzlich Single-threaded ist; I/O hängt sehr Stark davon ab wie man das ganze im Redis konfiguriert, da muss man echt aufpassen! Objects in Redis schliesst alle Files mit ein und benötigt so mehr RAM. Mit Redis kann man aber ggf in Richtung eines "anfänglichen HA Systems" gehen, weil hier da keine Master/Slave mehr gibt ind em Sinne ... die DB Zählt und hier kann Redis ein Cluster sein mit Sentinel.
                          • File-DB ist die Baseline was Durchsatz angeht quasi. I/O ist Mittelprächtig weil immer die ganzen tates/Objects-Daten auf einmal auf platte geschrieben werden - egal was sich geändert hat. Aber "Files" kosten kein RAM. Aber das System hat einen Master-Node - wenn der weg ist, ist alles offline.
                          • JSONL hat ggf. einen etwas geringeren Durchsatz weil regelmäßiger Daten gespeichert werden und hier und da Konsolidiert wird -am Ende aber weniger I/O. Und Files kosten auch kein RAM. Master-Node-Thema selbes wie File-DB

                          Bei File-DB und JSONL gilt das der js-controller diese DB bereitstellt was wieder Single-threaded ist.

                          Um ein Optimum zu finden (was aber noch keiner empirisch untersucht hat) kann man auch kombinieren. (Ich nutze bei meinen Redis Systemen zB bei States die RDB Persistenz und bei Objects AOF ... Formal hat auch bei JSONL noch keiner untersucht wie der I/O wirklich besser ist ... Bei Objects in jedem Fall ... für States bin ich nicht sicher)

                          Wer also eine optimierte I/O haben will der kann JSONL nutzen, was vor allem für SD Karten besser sein dürfte als "FileDB", die Berichte sind oben ... Objects in jedem Fall ... Geht aber ein bissl zu Lasten des Durchsatzes.

                          Wer Durchsatz optimieren will geht auf Redis, braucht aber ggf mehr RAM und muss die Persistenz einstellen.

                          Das "einfachste" ist aktuell File-DB und wenn wir JSONL zum Standard machen natürlich das :-) Einfach weil wir schauen das wir die Limits sinnvoll einstellen das es irgendwie für alle passt ...

                          So lange der js-controller CPU Technisch nicht mehr als 60-70% braucht geht die Optimierung maximal um I/O ... und da sollte JSONL besser sein als File-DB. Wenn der controller mal "ständig" >70-80% hat und das anfängt den ioBroker in Summe langsamer zu machen dann kommt Redis ins Spiel ... vllt nur für die States oder so :-))

                          Und es gilt natürlich das was @AlCalzone gesagt hat :-)

                          Hab ich genug Verwirrung gestiftet? ;-)

                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                          crunchipC 1 Antwort Letzte Antwort
                          2
                          • apollon77A apollon77

                            @thomas-braun Am Ende geht es um den Durchsatz im System, welches primär CPU-basiert ist und um den I/O und RAM verbrauch (am Ende ein gewisses Dreieck der varianten).

                            Ich hatte es versucht mal grob in https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick anzudeuten, aber der aktuelle Stand wäre grob wie folgt (für eine DB Reinform -also Objects und States umgestellt):

                            • Redis: 20+% mehr Durchsatz weil optimierte Datenbank-Engine (und kein JavaScript); noch mehr wenn man States und Objects in zwei Redis-Prozesse trennt, da Redis auch grundsätzlich Single-threaded ist; I/O hängt sehr Stark davon ab wie man das ganze im Redis konfiguriert, da muss man echt aufpassen! Objects in Redis schliesst alle Files mit ein und benötigt so mehr RAM. Mit Redis kann man aber ggf in Richtung eines "anfänglichen HA Systems" gehen, weil hier da keine Master/Slave mehr gibt ind em Sinne ... die DB Zählt und hier kann Redis ein Cluster sein mit Sentinel.
                            • File-DB ist die Baseline was Durchsatz angeht quasi. I/O ist Mittelprächtig weil immer die ganzen tates/Objects-Daten auf einmal auf platte geschrieben werden - egal was sich geändert hat. Aber "Files" kosten kein RAM. Aber das System hat einen Master-Node - wenn der weg ist, ist alles offline.
                            • JSONL hat ggf. einen etwas geringeren Durchsatz weil regelmäßiger Daten gespeichert werden und hier und da Konsolidiert wird -am Ende aber weniger I/O. Und Files kosten auch kein RAM. Master-Node-Thema selbes wie File-DB

                            Bei File-DB und JSONL gilt das der js-controller diese DB bereitstellt was wieder Single-threaded ist.

                            Um ein Optimum zu finden (was aber noch keiner empirisch untersucht hat) kann man auch kombinieren. (Ich nutze bei meinen Redis Systemen zB bei States die RDB Persistenz und bei Objects AOF ... Formal hat auch bei JSONL noch keiner untersucht wie der I/O wirklich besser ist ... Bei Objects in jedem Fall ... für States bin ich nicht sicher)

                            Wer also eine optimierte I/O haben will der kann JSONL nutzen, was vor allem für SD Karten besser sein dürfte als "FileDB", die Berichte sind oben ... Objects in jedem Fall ... Geht aber ein bissl zu Lasten des Durchsatzes.

                            Wer Durchsatz optimieren will geht auf Redis, braucht aber ggf mehr RAM und muss die Persistenz einstellen.

                            Das "einfachste" ist aktuell File-DB und wenn wir JSONL zum Standard machen natürlich das :-) Einfach weil wir schauen das wir die Limits sinnvoll einstellen das es irgendwie für alle passt ...

                            So lange der js-controller CPU Technisch nicht mehr als 60-70% braucht geht die Optimierung maximal um I/O ... und da sollte JSONL besser sein als File-DB. Wenn der controller mal "ständig" >70-80% hat und das anfängt den ioBroker in Summe langsamer zu machen dann kommt Redis ins Spiel ... vllt nur für die States oder so :-))

                            Und es gilt natürlich das was @AlCalzone gesagt hat :-)

                            Hab ich genug Verwirrung gestiftet? ;-)

                            crunchipC Abwesend
                            crunchipC Abwesend
                            crunchip
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #170

                            @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                            So lange der js-controller CPU Technisch nicht mehr als 60-70% braucht

                            absolut im Rahmen mit JSONL
                            8139ccc0-dc54-4a51-b02b-e2b319e68e00-grafik.png

                            umgestiegen von Proxmox auf Unraid

                            apollon77A 1 Antwort Letzte Antwort
                            0
                            • crunchipC crunchip

                              @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                              So lange der js-controller CPU Technisch nicht mehr als 60-70% braucht

                              absolut im Rahmen mit JSONL
                              8139ccc0-dc54-4a51-b02b-e2b319e68e00-grafik.png

                              apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #171

                              @crunchip Hier sollte sich JSONL und File-DB nicht anders verhalten ... FileDB hat vllt sogar etwas weniger CPU-Last :-)

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              crunchipC 1 Antwort Letzte Antwort
                              0
                              • apollon77A apollon77

                                @crunchip Hier sollte sich JSONL und File-DB nicht anders verhalten ... FileDB hat vllt sogar etwas weniger CPU-Last :-)

                                crunchipC Abwesend
                                crunchipC Abwesend
                                crunchip
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #172

                                @apollon77 Hatte ja zu Beginn des Threads ja schon Umgestellt und berichtet, wegen dem Gesamt CPU Anstieg der VM, was dadurch weiter auf Ursachenforschung ging und feststellte, das der ein oder andere Adapter mit in die Suppe gespuckt hatte, z.b. wled
                                Ansonsten war das mein letzter Stand, siehe https://forum.iobroker.net/post/591902

                                umgestiegen von Proxmox auf Unraid

                                1 Antwort Letzte Antwort
                                0
                                • AlCalzoneA Offline
                                  AlCalzoneA Offline
                                  AlCalzone
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #173

                                  Ich hab bei den Arbeiten für Controller 4 noch einiges an Optimierung gemacht (sofern @apollon77's Problem jetzt gelöst ist?).
                                  Das hat bei mir den Durchsatz der DB-Lib um Faktor 15-30 erhöht, was sich in ioBroker aber vor allem in geringerer CPU-Last bzw. Latenz auswirken dürfte.

                                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                  1 Antwort Letzte Antwort
                                  2
                                  • ? Offline
                                    ? Offline
                                    Ein ehemaliger Benutzer
                                    schrieb am zuletzt editiert von
                                    #174

                                    @apollon77

                                    Hi, moechte von Redis auf jsonL umstellen, hat sich da mit js-controller 4.x was noch geaendert, das man beachten sollte?
                                    Der 4.x laeuft auf meinem System mit Redis einwandfrei, nur hat Redis bei mir in letzter Zeit ne recht hohe last und oefters kommt "slow connection to objects"...

                                    apollon77A 1 Antwort Letzte Antwort
                                    0
                                    • ? Ein ehemaliger Benutzer

                                      @apollon77

                                      Hi, moechte von Redis auf jsonL umstellen, hat sich da mit js-controller 4.x was noch geaendert, das man beachten sollte?
                                      Der 4.x laeuft auf meinem System mit Redis einwandfrei, nur hat Redis bei mir in letzter Zeit ne recht hohe last und oefters kommt "slow connection to objects"...

                                      apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      schrieb am zuletzt editiert von
                                      #175

                                      @ilovegym Mit js-controller 4 (Achtung aktuell Alpha!!) wird jsonl die neue Standard DB.

                                      Aber jetzt mal einen Schritt zurück: Wenn Redis viel last hat und teilweise "slow connection" ckommt dasnn wird das mit sjonl eher schlechter als besser!! Was ist denn da los in deinem System? Schau mal an ob du instanzen hast die viele Daten senden und so.

                                      Fakt ist immer noch das Redis ca. 25-30% mehr Durchsatz leistet als File oder jsonl ... also wenn du it Redis an grenzen stösst ... ... ...

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      1 Antwort Letzte Antwort
                                      0
                                      • ? Offline
                                        ? Offline
                                        Ein ehemaliger Benutzer
                                        schrieb am zuletzt editiert von
                                        #176

                                        @apollon77 ah ok, Danke, dann schau ich mal genauer, was viel frisst.. sind 75000 objects oder so.
                                        Zur Zeit hab ich Multihost, der Master laeuft in einem lxc mit Debian 10(von 8 auf 9 auf 10 gezogen), dazu 4 Raspi's mit jeweils 1-3 Instanzen..

                                        Mein Plan ist, die Raspi's auf 1 zu minimieren, und Multihost mit mindestens 3 lxc auf mindestens 3 Nodes verteilt zu erstellen, um eben die Last zu verteilen und auch bei einem Ausfall einer Node/lxc nur ein Teilausfall zu haben.

                                        Im Moment ist Zeit das groesste Problem, laufen tuts ja ..

                                        apollon77A 1 Antwort Letzte Antwort
                                        0
                                        • ? Ein ehemaliger Benutzer

                                          @apollon77 ah ok, Danke, dann schau ich mal genauer, was viel frisst.. sind 75000 objects oder so.
                                          Zur Zeit hab ich Multihost, der Master laeuft in einem lxc mit Debian 10(von 8 auf 9 auf 10 gezogen), dazu 4 Raspi's mit jeweils 1-3 Instanzen..

                                          Mein Plan ist, die Raspi's auf 1 zu minimieren, und Multihost mit mindestens 3 lxc auf mindestens 3 Nodes verteilt zu erstellen, um eben die Last zu verteilen und auch bei einem Ausfall einer Node/lxc nur ein Teilausfall zu haben.

                                          Im Moment ist Zeit das groesste Problem, laufen tuts ja ..

                                          apollon77A Offline
                                          apollon77A Offline
                                          apollon77
                                          schrieb am zuletzt editiert von
                                          #177

                                          @ilovegym Die reine Anzahl (die interessant hoch ist) ist nicht das Thema ... am Ende kommt die Last von Aktionen auf die DB ... und da schau mal welche Instanz da Daten "spammt" ... aber wenn Redis so "am Limit" ist dann ist eher die Farge ob die ne bessere CPU findest für den Redis LXC :-) Aber da bringt jsonl nicht viel denke ich.

                                          PS: Was sinds denn für Nucs? Ehere die "Nuc6 ecke" mit Pentiums/Celerons oder Nuc8 mit i5?

                                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                          ? 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

                                          814

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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