Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. EXPERIMENTELL: JsonL Datenbank für js-controller

    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

    EXPERIMENTELL: JsonL Datenbank für js-controller

    This topic has been deleted. Only users with topic management privileges can see it.
    • crunchip
      crunchip Forum Testing Most Active @apollon77 last edited by

      @apollon77 nein leider nicht, ist mir halt nur laut Proxmox Anzeige aufgefallen und bisher auch noch nicht weiter verfolgt

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @AlCalzone last edited by

        @alcalzone Macht das Sinn beim Adapter?? Wenn es an der dB liiert kann’s doch nur der Master Controller sein

        1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @AlCalzone last edited by

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

          node --prof-process --preprocess *v8.log > processed.txt

          hab ich erledigt, habe mal den sonoff Adapter dafür hergenommen, Text Datei hat 4mb, wohin soll ich sie schicken?

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            @apollon77 könntest Recht haben... Kann @crunchip den auch einfach mit dem Flag starten?

            @crunchip müsstest du einfach hier hochladen können oder geht das nicht?

            crunchip 1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @AlCalzone last edited by

              @alcalzone processed.txt

              AlCalzone 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @crunchip last edited by

                @crunchip Da sieht man tatsächlich nichts von der DB. Bin mir gerade nicht sicher, wie man den Controller selbst mit dem Flag starten kann.

                apollon77 1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @AlCalzone last edited by

                  @alcalzone am Ende startest du die Main.js oder Controller.js. (Geht beides). Grad unterwegs. Daher ganzen Pfad tippen blöd.

                  1 Reply Last reply Reply Quote 0
                  • Dr. Bakterius
                    Dr. Bakterius Most Active @apollon77 last edited by Dr. Bakterius

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

                    Ich würd das gern mal grob Gegenrechnen. Sag mal wie groß die „alten“ objects.json bzw States.json sind ... also nicht die jsonl files.

                    Die hatten etwa 15 MB (objects) bzw. 2,5 MB (states).

                    Und .... waren die 190gb mit dem 1h objects speichern oder davor?

                    Also begonnen hat die Aktion bei mir mit ca. 250 GB / Tag. Das konnte ich etwas reduzieren indem ich den Zyklus von netatmo und daswetter reduziert habe. Nach der Umstellung auf redis für die states und die objects nur einmal pro Stunde schreiben, hatte ich dann rund 23 GB pro Tag. Der neue Controller hat das auf 12 GB pro Tag reduziert. Und jetzt mit jsonl / jsonl komme ich auf 118 MB am Tag.

                    Wobei mir in den Proxmox-Grafiken noch nicht aufgefallen ist, dass die Dateien gepackt und neu geschrieben wurden. Wie oft passiert das? Denn die 118 MB kommen mir schon wenig vor.

                    Die CPU-Last ist bei mir auch wieder in die Höhe gegangen (~50% mehr). Durch redis konnte ich gegenüber file aber zuvor die Belastung senken. Jetzt ist sie vielleicht etwas höher als unter file / file. Laut htop verursacht der js-controller die mit Abstand höchste CPU-Last.

                    AlCalzone 1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active last edited by

                      also würde dann so aussehen, oder?

                      cd /opt/iobroker/node_modules/iobroker.js-controller
                      node --prof main.js
                      *bzw*
                      node --prof controller.js
                      

                      und dann iobroker stoppen, starten?

                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @Dr. Bakterius last edited by

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

                        Wobei mir in den Proxmox-Grafiken noch nicht aufgefallen ist, dass die Dateien gepackt und neu geschrieben wurden. Wie oft passiert das? Denn die 118 MB kommen mir schon wenig vor.

                        By default nach folgenden Regeln:

                        • Beim Start von ioBroker und
                        • Wenn die Datei auf die doppelte tatsächlich benötigte Größe angewachsen ist, aber erst wenn sie mindestens 1000 Zeilen enthält.

                        Je nachdem, wie oft es bei dir Veränderungen gibt, kann das sehr selten passieren. Da sich hauptsächlich die States verändern sollten, werden dann jedesmal so um die 2,5 MB geschrieben. Alle anderen Schreibzugriffe sind eher im Byte- bis max. Kilobyte-Bereich.

                        @crunchip Ich glaube vorher iobroker stoppen, dann den genannten Befehl. Und irgendwann ioBroker mit Strg+C beenden.

                        Dr. Bakterius crunchip 2 Replies Last reply Reply Quote 0
                        • Dr. Bakterius
                          Dr. Bakterius Most Active @AlCalzone last edited by

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

                          Wenn die Datei auf die doppelte tatsächlich benötigte Größe angewachsen ist, aber erst wenn sie mindestens 1000 Zeilen enthält.

                          Okay. Meine ursprüngliche objects.json ist 15.447.160 Byte groß. Aktuell hat die objects.jsonl 34.758.338 Byte und 18.553 Zeilen.

                          Ich denke, damit sollten beide Voraussetzungen für das Packen und Neuschreiben erfüllt sein, oder?

                          PS: Gerade gesehen, dass zumindest die states.jsonl neu erstellt wurde.

                          AlCalzone 1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer @Dr. Bakterius last edited by

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

                            Ich denke, damit sollten beide Voraussetzungen für das Packen und Neuschreiben erfüllt sein, oder?

                            Es kommt nicht auf die Größe an, sondern was man damit macht 😂

                            Nein, Spaß beiseite. Wie viele Zeilen hatte die originale objects.jsonl?

                            Dr. Bakterius 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @AlCalzone last edited by

                              @alcalzone ok, ich hab das jetzt mal mit main.js laufen lassen. Sind jetzt ein Arsch voll logs😉
                              allerdings kam auch ne error Meldung im Putty Fenster.
                              Desweiteren ist beim Start vom Iobroker der simple-api Adapter abgeschmiert und noch paar Ungereimtheiten, die ich grad per seq durchsehe.
                              du musst mir nur sagen, was du genau haben/sehen willst.

                              AlCalzone 1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer @crunchip last edited by

                                @crunchip Ich brauche das Profil (wie vorhin beim Adapter), um zu schauen, wo die Last erzeugt wird.

                                crunchip 2 Replies Last reply Reply Quote 0
                                • Dr. Bakterius
                                  Dr. Bakterius Most Active @AlCalzone last edited by

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

                                  Wie viele Zeilen hatte die originale objects.jsonl?

                                  Tja, wenn ich das wüsste. Ich warte mal bis morgen ab. Wenn da noch nichts neu geschrieben wurde, beende ich mal ioBroker. Da müsste dann ja die Datei geschrieben werden und ich kann nachsehen wie viele Zeilen sie hat.

                                  AlCalzone 1 Reply Last reply Reply Quote 0
                                  • crunchip
                                    crunchip Forum Testing Most Active @AlCalzone last edited by crunchip

                                    @alcalzone das sind 59 einzelne *-v8.log Dateien, die da angelegt wurden!!
                                    Das ist der letzte Abschnitt vom Puttyfenster

                                    This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which wa                                                   s not handled with .catch(). The promise rejected with the reason:
                                    TypeError: Cannot read property 'common' of null
                                        at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/@iobroker/db-objects-jsonl/node_m                                                   odules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3607:37)
                                        at runMicrotasks (<anonymous>)
                                        at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                    
                                    ^C================================== > LOG REDIRECT system.adapter.logparser.0 => false [Process stopped]
                                    ================================== > LOG REDIRECT system.adapter.logparser.0 => false [system.adapter.logparser.0.logging]
                                    ================================== > LOG REDIRECT system.adapter.javascript.0 => false [Process stopped]
                                    ================================== > LOG REDIRECT system.adapter.seq.0 => false [Process stopped]
                                    ================================== > LOG REDIRECT system.adapter.javascript.0 => false [system.adapter.javascript.0.logging]
                                    ================================== > LOG REDIRECT system.adapter.seq.0 => false [system.adapter.seq.0.logging]
                                    ================================== > LOG REDIRECT system.adapter.admin.0 => false [Process stopped]
                                    ================================== > LOG REDIRECT system.adapter.admin.0 => false [system.adapter.admin.0.logging]
                                    root@IoBroker:/opt/iobroker/node_modules/iobroker.js-controller#
                                    
                                    
                                    AlCalzone 1 Reply Last reply Reply Quote 0
                                    • crunchip
                                      crunchip Forum Testing Most Active @apollon77 last edited by crunchip

                                      @apollon77 hab mich grad daran erinnert, hab ja noch ein script laufen, das liefert folgendes
                                      9a46a2ac-1a5d-4b0f-9c18-81ec4a9a6a3e-grafik.png

                                      [{"command":"iobroker.js-controller","pid":"9819","cpu":61.9,"mem":10.4,"vmem":1169840,"rss":583488,"start":"20:50","time":"33:43"},{"command":"io.javascript.0","pid":"11149","cpu":12.9,"mem":6.2,"vmem":1167828,"rss":350740,"start":"20:52","time":"6:49"},{"command":"io.admin.0","pid":"9986","cpu":1,"mem":3,"vmem":929792,"rss":168668,"start":"20:50","time":"0:34"},{"command":"io.iogo.0","pid":"10729","cpu":5.4,"mem":2.4,"vmem":1947004,"rss":136788,"start":"20:52","time":"2:53"},{"command":"io.simple-api.0","pid":"12375","cpu":1.2,"mem":2.1,"vmem":732936,"rss":120760,"start":"20:53","time":"0:38"},{"command":"io.influxdb.2","pid":"10695","cpu":4.4,"mem":1.8,"vmem":675636,"rss":103412,"start":"20:51","time":"2:21"},{"command":"io.influxdb.0","pid":"10516","cpu":4.8,"mem":1.8,"vmem":667648,"rss":101056,"start":"20:51","time":"2:36"},{"command":"io.sonoff.0","pid":"12456","cpu":4.9,"mem":1.7,"vmem":664560,"rss":97656,"start":"20:53","time":"2:32"},{"command":"io.backitup.0","pid":"10016","cpu":0.1,"mem":1.6,"vmem":663928,"rss":93176,"start":"20:50","time":"0:05"},{"command":"io.iot.0","pid":"11123","cpu":0.2,"mem":1.5,"vmem":793480,"rss":88832,"start":"20:52","time":"0:07"},{"command":"io.influxdb.1","pid":"10531","cpu":0.4,"mem":1.5,"vmem":654816,"rss":88220,"start":"20:51","time":"0:14"},{"command":"io.shelly.0","pid":"11502","cpu":1,"mem":1.5,"vmem":660668,"rss":88220,"start":"20:52","time":"0:33"},{"command":"io.radar2.0","pid":"11427","cpu":0.4,"mem":1.4,"vmem":911532,"rss":82720,"start":"20:52","time":"0:13"},{"command":"io.wled.0","pid":"13018","cpu":1.6,"mem":1.4,"vmem":634420,"rss":79948,"start":"20:54","time":"0:49"},{"command":"io.sourceanalytix.0","pid":"12471","cpu":1.4,"mem":1.3,"vmem":632440,"rss":78008,"start":"20:53","time":"0:44"},{"command":"io.web.0","pid":"12980","cpu":0.3,"mem":1.3,"vmem":648700,"rss":77616,"start":"20:54","time":"0:11"},{"command":"io.zigbee.0","pid":"13072","cpu":0.4,"mem":1.3,"vmem":780548,"rss":77480,"start":"20:54","time":"0:12"},{"command":"io.tr-064.0","pid":"12692","cpu":0.3,"mem":1.3,"vmem":643116,"rss":76360,"start":"20:53","time":"0:09"},{"command":"io.virtualpowermeter.0","pid":"12743","cpu":0.6,"mem":1.3,"vmem":648892,"rss":76148,"start":"20:53","time":"0:19"},{"command":"io.telegram.0","pid":"12497","cpu":0.4,"mem":1.3,"vmem":783552,"rss":75044,"start":"20:53","time":"0:13"},{"command":"io.info.0","pid":"10706","cpu":0.1,"mem":1.3,"vmem":781448,"rss":74792,"start":"20:51","time":"0:05"},{"command":"io.telegram.1","pid":"12651","cpu":0.4,"mem":1.3,"vmem":847456,"rss":74664,"start":"20:53","time":"0:12"},{"command":"io.shuttercontrol.0","pid":"11674","cpu":0.2,"mem":1.3,"vmem":645352,"rss":74332,"start":"20:52","time":"0:07"},{"command":"io.linux-control.0","pid":"11164","cpu":0.6,"mem":1.2,"vmem":907652,"rss":72120,"start":"20:52","time":"0:19"},{"command":"io.fully-tablet-control.0","pid":"10307","cpu":0.3,"mem":1.2,"vmem":642736,"rss":70696,"start":"20:51","time":"0:12"},{"command":"io.history.0","pid":"10471","cpu":0.4,"mem":1.2,"vmem":706744,"rss":69844,"start":"20:51","time":"0:14"},{"command":"io.socketio.0","pid":"12434","cpu":0.1,"mem":1.1,"vmem":709680,"rss":66284,"start":"20:53","time":"0:05"},{"command":"io.smartcontrol.0","pid":"12408","cpu":0.3,"mem":1.1,"vmem":638636,"rss":65908,"start":"20:53","time":"0:09"},{"command":"io.tankerkoenig.0","pid":"12482","cpu":0.2,"mem":1.1,"vmem":901992,"rss":64736,"start":"20:53","time":"0:06"},{"command":"io.pollenflug.0","pid":"11393","cpu":0.1,"mem":1.1,"vmem":705264,"rss":64552,"start":"20:52","time":"0:05"},{"command":"io.unifi.0","pid":"30663","cpu":5.8,"mem":1.1,"vmem":635608,"rss":63940,"start":"21:43","time":"0:06"},{"command":"io.alexa2.0","pid":"10001","cpu":0.2,"mem":1.1,"vmem":903352,"rss":63756,"start":"20:50","time":"0:08"},{"command":"io.chromecast.0","pid":"10225","cpu":0.1,"mem":1.1,"vmem":1665116,"rss":63296,"start":"20:51","time":"0:06"},{"command":"io.logparser.0","pid":"11179","cpu":0.2,"mem":1.1,"vmem":619548,"rss":63196,"start":"20:52","time":"0:09"},{"command":"io.trashschedule.0","pid":"12708","cpu":0.1,"mem":1,"vmem":634032,"rss":60344,"start":"20:53","time":"0:04"},{"command":"io.jarvis.0","pid":"11134","cpu":0.1,"mem":1,"vmem":633720,"rss":60168,"start":"20:52","time":"0:04"},{"command":"io.ble.0","pid":"10038","cpu":0.3,"mem":1,"vmem":617376,"rss":60064,"start":"20:51","time":"0:10"},{"command":"io.ping.0","pid":"11378","cpu":0.4,"mem":1,"vmem":619148,"rss":60064,"start":"20:52","time":"0:13"},{"command":"io.milight-smart-light.0","pid":"11359","cpu":0.1,"mem":1,"vmem":634572,"rss":59776,"start":"20:52","time":"0:04"},{"command":"io.wiffi-wz.0","pid":"12997","cpu":0.1,"mem":1,"vmem":634844,"rss":59232,"start":"20:54","time":"0:05"},{"command":"io.sayit.0","pid":"11445","cpu":0.1,"mem":1,"vmem":615444,"rss":57984,"start":"20:52","time":"0:04"},{"command":"io.email.0","pid":"10277","cpu":0.1,"mem":1,"vmem":615524,"rss":57080,"start":"20:51","time":"0:03"},{"command":"io.text2command.0","pid":"12672","cpu":0.1,"mem":1,"vmem":614948,"rss":56676,"start":"20:53","time":"0:04"},{"command":"io.mihome.0","pid":"11341","cpu":0.1,"mem":1,"vmem":615708,"rss":56172,"start":"20:52","time":"0:04"},{"command":"io.yeelight-2.0","pid":"13045","cpu":0.1,"mem":1,"vmem":631564,"rss":55944,"start":"20:54","time":"0:04"},{"command":"io.broadlink2.0","pid":"10061","cpu":0.1,"mem":0.9,"vmem":614528,"rss":55520,"start":"20:51","time":"0:04"},{"command":"io.seq.0","pid":"11475","cpu":0.1,"mem":0.9,"vmem":614256,"rss":54000,"start":"20:52","time":"0:04"},{"command":"io.vis-inventwo.0","pid":"12774","cpu":0.1,"mem":0.9,"vmem":613384,"rss":53872,"start":"20:54","time":"0:03"}]
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • crunchip
                                        crunchip Forum Testing Most Active @AlCalzone last edited by

                                        @alcalzone es wurde ne 8,1mb große Datei angelegt, weiß auch nicht ob das so korrekt ist, da er nach dem Umwandel Befehl ne ganze Reihe
                                        Move: unknown source....
                                        ausgegeben hat,

                                        jedenfalls ist die Datei zu groß um hier hochgeladen zu werden, wohin soll ich sie schicken?

                                        1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer @crunchip last edited by

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

                                          das sind 59 einzelne *-v8.log Dateien, die da angelegt wurden!!

                                          Öh doof, das ist dann je eine pro Adapterprozess. Kannst du irgendwie ausmachen, welche davon zum js-controller gehört hat? Nur die dann bitte umwandeln (oder jede in eine eigene Datei, nicht alle in dieselbe processed.txt).

                                          Die Dateien kannst du zippen und mir per Mail schicken.

                                          crunchip 1 Reply Last reply Reply Quote 1
                                          • AlCalzone
                                            AlCalzone Developer @Dr. Bakterius last edited by

                                            @dr-bakterius Es kann auch sein, dass neue Objekte dazu gekommen sind und dass demnach die Bedingung "doppelt so groß wie nötig" erst später erfüllt wird.

                                            Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            838
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            187
                                            17528
                                            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