Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test ioBroker Fixer mit JSONL-Compression

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test ioBroker Fixer mit JSONL-Compression

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

      Hey All,

      ich habe heute mal etwas anderes zum testen.

      Es gibt aktuell ein Problem das JSONL Files manchmal zu große werden. Ein die Tage kommender js-controller 4.0.24 wird die Ursache beheben, aber wir wissen nicht wie viele User betroffen sind.

      Das Problem tritt meistens bei der objects.jsonl Datei auf, wenn JSONL genutzt wird und sich selten Objekte ändern. Dann kann es durchaus zu 1 GB großen Dateien kommen.
      Um sicherzustellen das es beim Update des js-controller dann zu keinen Probleme kommt weil Files zu groß geworden sind haben wir entschieden den Fixer zu erweitern das dieser die Datenbank-Files komprimiert. Vielen Dank an @Thomas-Braun für die Unterstützung beim Bash-en 🙂

      Das würde ich gern mit Euch kurz testen bevor wir es offiziell ausrollen, weil es dann aufgrund von npm Versionen ggf doch kleine Unterschiede geben kann.

      Was ist zu tun?

      Zuerst Bitte ioBroker auf dem Host stoppen iob stop.

      Wer es genau wissen will macht jetzt und später nach der Optimierung ein ls -la /opt/iobroker/iobroker-data/*.jsonl um zu sehen wie die Filegrößen waren und ob die Komprimierung funktioniert hat.

      Dann den Test-Fixer über folgendes Kommando ausführen.

      curl -sLf https://raw.githubusercontent.com/ioBroker/ioBroker/dbcompress/fix_installation.sh | bash -
      

      Wenn alles klappt gibt es einen neuen Schritt 3/4 namens "Database maintenance".

      Wenn JSONL als Datenbank genutzt wird dann sieht es ungefähr so aus wenn alles durch ist:

      Bildschirm­foto 2022-11-19 um 21.48.52.png

      Wenn keine JSONL genutzt wird zB so:

      Bildschirm­foto 2022-11-19 um 21.49.41.png

      Wenn npm 5 oder 6 noch auf dem System ist kann es sein das zusätzlich noch 1-2 Zeilen mehr ausgegeben werden. Aber generell muss es das gleiche sein.

      Welches Ergebnis ist interessant

      Primär ob es getan hat bzw ob der Fixer ohne komische Zusatz-Fehlermeldungen getan hat was er soll ... und idealerweise, wenn JSONL in Benutzung ist, ob die Kompression getan hat.

      Rückmeldungen gern (am besten mit npm -v Ausgabe - also NPM Version) hier im Thread.

      Danke für Eure Unterstützung!

      Ingo

      Thomas Braun Latzi da_Woody Kalle Blomquist BananaJoe 6 Replies Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @apollon77 last edited by

        @apollon77

        Hier mein Bleeding-Edge-Frickel-System:

        echad@chet:~ $ npm -v
        9.1.2
        echad@chet:~ $ iob stop
        echad@chet:~ $ ls -la /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 28372301 Nov 19 23:13 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 12487942 Nov 19 23:13 /opt/iobroker/iobroker-data/states.jsonl
        echad@chet:~ $ ls -lah /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 28M Nov 19 23:13 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 12M Nov 19 23:13 /opt/iobroker/iobroker-data/states.jsonl
        

        Behandlung sah dann so aus:

        ==========================================================================
            Database maintenance (3/4)
        ==========================================================================
        
        Checking for uncompressed JSONL databases... This might take a while!
        
        Compressing /opt/iobroker/iobroker-data/states.jsonl
        Compressing /opt/iobroker/iobroker-data/objects.jsonl
        Compressed 2 JSONL files. Done
        

        Resultat:

        VORHER:
        echad@chet:~ $ ls -la /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 28372301 Nov 19 23:13 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 12487942 Nov 19 23:13 /opt/iobroker/iobroker-data/states.jsonl
        echad@chet:~ $ ls -lah /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 28M Nov 19 23:13 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 12M Nov 19 23:13 /opt/iobroker/iobroker-data/states.jsonl
        
        NACHHER:
        echad@chet:~ $ ls -la /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 12096153 Nov 19 23:17 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker  2813599 Nov 19 23:17 /opt/iobroker/iobroker-data/states.jsonl
        echad@chet:~ $ ls -lah /opt/iobroker/iobroker-data/*.jsonl
        -rw-rw-r--+ 1 iobroker iobroker  12M Nov 19 23:17 /opt/iobroker/iobroker-data/objects.jsonl
        -rw-rw-r--+ 1 iobroker iobroker 2.7M Nov 19 23:17 /opt/iobroker/iobroker-data/states.jsonl
        
        1 Reply Last reply Reply Quote 3
        • Chaot
          Chaot last edited by

          Bei mir:

          haus@ioBroker:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
          -rw-rw-r--+ 1 iobroker iobroker 35794383 Nov 20 00:31 /opt/iobroker/iobroker-data/objects.jsonl
          
          

          Der Fixer lief normal:

              Database maintenance (3/4)
          ==========================================================================
          
          Checking for uncompressed JSONL databases... This might take a while!
          
          Compressing /opt/iobroker/iobroker-data/objects.jsonl
          Compressed 1 JSONL files. Done
          
          

          Nachher:

          haus@ioBroker:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
          -rw-rw-r--+ 1 iobroker iobroker 24611926 Nov 20 00:37 /opt/iobroker/iobroker-data/objects.jsonl
          

          Und der Vollständigkeit halber:

          haus@ioBroker:~$ npm -v
          8.19.2
          
          1 Reply Last reply Reply Quote 1
          • Latzi
            Latzi @apollon77 last edited by

            @apollon77

            lief sauber durch!

            latzi@ioBroker:~$ npm -v
            8.19.2
            

            vorher:

            latzi@ioBroker:~$ ls -lah /opt/iobroker/iobroker-data/*.jsonl
            -rw-rw-r--+ 1 iobroker iobroker 38M 20. Nov 05:03 /opt/iobroker/iobroker-data/objects.jsonl
            -rw-rw-r--+ 1 iobroker iobroker 12M 20. Nov 05:03 /opt/iobroker/iobroker-data/states.jsonl
            

            nachher:

            latzi@ioBroker:~$ ls -lah /opt/iobroker/iobroker-data/*.jsonl
            -rw-rw-r--+ 1 iobroker iobroker  25M 20. Nov 05:04 /opt/iobroker/iobroker-data/objects.jsonl
            -rw-rw-r--+ 1 iobroker iobroker 7,5M 20. Nov 05:04 /opt/iobroker/iobroker-data/states.jsonl
            
            1 Reply Last reply Reply Quote 1
            • da_Woody
              da_Woody @apollon77 last edited by

              @apollon77

              woody@ioBroker:~$ npm -v
              8.19.2
              woody@ioBroker:~$ iob stop
              [sudo] Passwort für woody:
              woody@ioBroker:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
              -rw-rw-r--+ 1 iobroker iobroker 26161720 20. Nov 06:32 /opt/iobroker/iobroker-data/objects.jsonl
              -rw-rw-r--+ 1 iobroker iobroker 17136842 20. Nov 06:32 /opt/iobroker/iobroker-data/states.jsonl
              
              
              ==========================================================================
                  Database maintenance (3/4)
              ==========================================================================
              
              Checking for uncompressed JSONL databases... This might take a while!
              
              Compressing /opt/iobroker/iobroker-data/states.jsonl
              Compressing /opt/iobroker/iobroker-data/objects.jsonl
              Compressed 2 JSONL files. Done
              
              
              Latzi 1 Reply Last reply Reply Quote 0
              • Latzi
                Latzi @da_Woody last edited by

                @da_woody
                und wie war die Größe nach dem Fix?

                da_Woody 1 Reply Last reply Reply Quote 0
                • da_Woody
                  da_Woody @Latzi last edited by

                  @latzi sorry, hab ich vergessen zu kopieren... lauft schon wieder...

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

                    @da_woody alles gut. Bei euren Größen seidige alle vom „große files“ problem nicht betroffen. Aber log sie ja gut aus. Danke

                    M 1 Reply Last reply Reply Quote 1
                    • Kalle Blomquist
                      Kalle Blomquist @apollon77 last edited by

                      @apollon77

                      kalle@iobrokerct:~$ npm -v
                      8.19.2
                      
                      Vorher
                      kalle@iobrokerct:~$ kalle@iobrokerct:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
                      -rw-rw-r--+ 1 iobroker iobroker 20807087 20. Nov 09:17 /opt/iobroker/iobroker-data/objects.jsonl
                      -rw-rw-r--+ 1 iobroker iobroker  4919960 20. Nov 09:18 /opt/iobroker/iobroker-data/states.jsonl
                      
                      Nacher
                      
                      kalle@iobrokerct:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
                      -rw-rw-r--+ 1 iobroker iobroker 18449470 20. Nov 09:19 /opt/iobroker/iobroker-data/objects.jsonl
                      -rw-rw-r--+ 1 iobroker iobroker  4181835 20. Nov 09:19 /opt/iobroker/iobroker-data/states.jsonl
                      
                      ==========================================================================
                          Database maintenance (3/4)
                      ==========================================================================
                      
                      Checking for uncompressed JSONL databases... This might take a while!
                      
                      Compressing /opt/iobroker/iobroker-data/states.jsonl
                      Compressing /opt/iobroker/iobroker-data/objects.jsonl
                      Compressed 2 JSONL files. Done
                      
                      Gruß Kalle
                      
                      1 Reply Last reply Reply Quote 1
                      • M
                        mrjeschke @apollon77 last edited by

                        @apollon77

                        Moin,
                        Ich hoffe das ist groß genug.

                        pi@iobroker:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl
                        -rw-rwxr--+ 1 iobroker iobroker 145665583 Nov 20 02:40 /opt/iobroker/iobroker-data/objects.jsonl
                        -rw-rw-r--+ 1 iobroker iobroker    801992 Nov 20 09:25 /opt/iobroker/iobroker-data/states.jsonl
                        pi@iobroker:~$
                        
                        ==========================================================================
                            Database maintenance (3/4)
                        ==========================================================================
                        
                        Checking for uncompressed JSONL databases... This might take a while!
                        
                        Compressing /opt/iobroker/iobroker-data/states.jsonl
                        Compressing /opt/iobroker/iobroker-data/objects.jsonl
                        Compressed 2 JSONL files. Done
                        
                        pi@iobroker:~$ ls -la /opt/iobroker/iobroker-data/*.jsonl 
                        -rw-rw-r--+ 1 iobroker iobroker 6821778 Nov 20 09:29 /opt/iobroker/iobroker-data/objects.jsonl
                        -rw-rw-r--+ 1 iobroker iobroker  302548 Nov 20 09:29 /opt/iobroker/iobroker-data/states.jsonl
                        pi@iobroker:~$ 
                        
                        
                        apollon77 1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 @mrjeschke last edited by

                          @mrjeschke 145 mb auf 6 wenn ich grad aufm Handy nicht verzählt hab ;-)) aber ja cool. Tut. Dann kann das später raus.

                          1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @apollon77 last edited by

                            @apollon77

                            So aus technischer Neugier - *.jsonl ist doch im Prinzip eine schnöde Textdatei.
                            Wie/was komprimiert er da - also wie schafft er es da Platz zu schaffen? Oder lässt er "nur die Luft raus" und entfernt ungenuztes?

                            WolfgangD apollon77 2 Replies Last reply Reply Quote 0
                            • WolfgangD
                              WolfgangD @BananaJoe last edited by

                              @apollon77 Ich habe nach Systemcrash und Neuaufbau und Rücksicherung der states und objects.jsonl auch gerade "Effekte", die nach kaputter Datenbankstruktur riechen. Objecte tauchen mehrfach auf, alte Werte kommen irgendwie immer wieder hervor. Da kommt mir ein Werkzeug zur Reparatur der Datenbank gerade recht!

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

                                @bananajoe Das Konzept von der jsonl Datenbank ist das pro Zeile ein Objekt drin steht und zuerst mal neue Daten ans file angehängt werden. Die standard „Komprimierung“ (also einen stand komplett neu zu schreiben bei dem für jeden key der aktuellste Wert drin steht) passiert an sich mit unseren Einstellungen wenn doppelt so viele Zeilen wie unique Objekte sind.

                                Und ja die Komprimierung räumt da auf. Vor allem da sich Objekte eher selten ändern halbes da Auswirkungen.

                                Der fixer kann so mit aufräumen und so Probleme beim iobroker start falls mal eine date groß wird und die sd Karte langsam ist zu vermeiden

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

                                  @wolfgangd wobei sowas an sich damit weniger was zu tun haben kann. Aber ja „Schaden kann’s auch nicht“ 😉 aber wenn die Probleme anhalten dann mal in eigenen thread „vorstellen“ 😉

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

                                    @apollon77

                                    Skript gestartet. Keine Probleme.

                                    Werte
                                    VORHER
                                    pi@pi4:~ $ ls -la /opt/iobroker/iobroker-data/*.jsonl
                                    -rw-r--r-- 1 iobroker iobroker 20202339 Nov 21 20:24 /opt/iobroker/iobroker-data/objects.jsonl
                                    -rw-r--r-- 1 iobroker iobroker 3889023 Nov 21 20:24 /opt/iobroker/iobroker-data/states.jsonl
                                    pi@pi4:~ $

                                    NACHHER
                                    pi@pi4:~ $ ls -la /opt/iobroker/iobroker-data/*.jsonl
                                    -rw-rw-r--+ 1 iobroker iobroker 8740574 Nov 21 20:27 /opt/iobroker/iobroker-data/objects.jsonl
                                    -rw-rw-r--+ 1 iobroker iobroker 956049 Nov 21 20:27 /opt/iobroker/iobroker-data/states.jsonl
                                    pi@pi4:~ $

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

                                      Hallo alle miteinander,

                                      Für Linux

                                      die Version des Fixers, die wir hier im Thread getestet hatten, ist seid gestern auch Live. Wäre cool wenn Ihr nochmal mit checken könntet das es auch mit einem "iob fix" immer noch tut.

                                      Und wenn Ihr schon dabei seid wäre cool wenn Ihr auch (nachdem Ihr einmal iob fix gemacht habt!!) danach ein "iob diag" versuchen könntet. Geht das? Da ist bestimmt @Thomas-Braun interessiert ob es da noch Fehler gibt 🙂

                                      Für Windows

                                      Der Fixer ist jetzt auch unter Windows verfügbar! Wäre cool wenn ich da ggf auch Tester finden ...

                                      Im ioBroker Verzeichnis wäre dies das Ausführen von npx @iobroker/fix ... (bei gestopptem ioBroker natürlich).

                                      Danke für Euer Feedback

                                      Ingo

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

                                        @apollon77 sagte in Test ioBroker Fixer mit JSONL-Compression:

                                        iob fix

                                        Funktioniert! objects.jsonl von 32751637 -> 20090424, states.jsonl von 20246420 -> 3260086

                                        iob diag

                                        Da bekomme ich folgenden Fehler:

                                        bash: line 1: syntax error near unexpected token `<'
                                        bash: line 1: `<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/www/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#2196F3"><meta name="description" content="Remote access to personal ioBroker server via ioBroker.cloud"/><link rel="apple-touch-icon" href="/www/logo192.png"/><link rel="manifest" href="/www/manifest.json"/><title>ioBroker Cloud</title><style>#root,body,html{height:100%;width:100%;display:flex;overflow:hidden}</style><script defer="defer" src="/www/static/js/main.ae982c84.js"></script><link href="/www/static/css/main.59da0ebb.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>'
                                        
                                        
                                        apollon77 1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 @Dr. Bakterius last edited by

                                          @dr-bakterius Danke, lasse es Bluefox nochmal prüfen

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

                                            @apollon77
                                            für iob diag wie @Dr-Bakterius

                                            bash: Zeile 1: Syntaxfehler beim unerwarteten Symbol »<«
                                            bash: Zeile 1: `<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/www/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#2196F3"><meta name="description" content="Remote access to personal ioBroker server via ioBroker.cloud"/><link rel="apple-touch-icon" href="/www/logo192.png"/><link rel="manifest" href="/www/manifest.json"/><title>ioBroker Cloud</title><style>#root,body,html{height:100%;width:100%;display:flex;overflow:hidden}</style><script defer="defer" src="/www/static/js/main.ae982c84.js"></script><link href="/www/static/css/main.59da0ebb.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>'
                                            
                                            

                                            für iob fix auf meinem vermanschten System
                                            vorher:

                                            bommel@iobroker:~$ ls -lah /opt/iobroker/iobroker-data/*.jsonl
                                            -rw-rw-r--+ 1 iobroker iobroker  54M 13. Dez 10:52 /opt/iobroker/iobroker-data/objects.jsonl
                                            -rw-rw-r--+ 1 iobroker iobroker 218M 13. Dez 10:52 /opt/iobroker/iobroker-data/states.jsonl
                                            

                                            nachher:

                                            bommel@iobroker:/opt/iobroker$ ls -lah /opt/iobroker/iobroker-data/*.jsonl
                                            -rw-rw-r--+ 1 iobroker iobroker 31M 13. Dez 10:53 /opt/iobroker/iobroker-data/objects.jsonl
                                            -rw-rw-r--+ 1 iobroker iobroker 15M 13. Dez 10:53 /opt/iobroker/iobroker-data/states.jsonl
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            894
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            84
                                            4841
                                            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