Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. ioBroker sehr hohe Diskwrites in Proxmox

    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

    ioBroker sehr hohe Diskwrites in Proxmox

    This topic has been deleted. Only users with topic management privileges can see it.
    • JLeg
      JLeg @Dr. Bakterius last edited by

      @dr-bakterius sagte in ioBroker sehr hohe Diskwrites in Proxmox:

      'htop' zeigt:

      bei htop kannst du übrigens mit "F2" das Setup aufrufen, und dort "disk reads" und "disk writes" (und einige andere i/o-counter) aktivieren, sodass diese im htop-Fenster mit angezeigt werden. Dann kann man z.B. auch danach sortieren...
      ("Spitzenreiter" bei mir sind übrigens Grafana und backitup)

      apollon77 1 Reply Last reply Reply Quote 1
      • apollon77
        apollon77 @JLeg last edited by

        @jleg das ist für States.jsonl aber egal weil das nur der Controller Prozess schreibt …

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

          @apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:

          @jleg das ist für States.jsonl aber egal weil das nur der Controller Prozess schreibt …

          ..der dann aber in der htop-"Hitliste" oben entsprechend auftauchen müsste, oder nicht?

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

            @jleg Richtig! Und das habe ich hier auch schon vor zwei Tagen so geschrieben. 😉

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

              @apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:

              Du musst die suchen die alle zweite Zahl viel haben.

              Danke für die Erklärung! 👍

              So sehen alle meine Instanzen aus:
              Menue.png

              So 900-1000 Ausgabeereignisse gesamt. Über welchen Zeitraum gesehen eigentlich? Ist das außergewöhnlich viel? Wenn ich die drei Instanzen mit den höchsten Werten beende, reduzieren sich die Ausgabeereignisse um knapp 50%. Und auch das Neuschreiben der states.jsonl erfolgt dann nur noch etwa halb so oft. Das ist soweit nachvollziehbar.

              Was ich nicht nachvollziehen kann, dass das Volumen dann immer noch etwa 50x so hoch ist wie noch im Juli! Wurde da sicher nichts bei der Behandlung von jsonl geändert? Wird jetzt häufiger komprimiert?

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

                @dr-bakterius sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                Über welchen Zeitraum gesehen eigentlich?

                15s ist das Messinterval und auch aktualisierungsinterval. AN sich wird nicht häufiger komprimiert wenn ich recht entsinne @AlCalzone ... oder fällt Dir was ein?

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

                  @apollon77 @Dr-Bakterius Geändert hat sich da nix.
                  Die jsonl-DB ist so voreingestellt, dass bei jeder Verdopplung der Datei (bei mind. 1000 Zeilen) komprimiert wird, d.h. alles neu geschrieben. In der Regel sollte das mit der Zeit immer seltener passieren.
                  Wenn deine Ereignisse viele Duplikate enthalten könnte ich mir vorstellen, dass recht häufig komprimiert wird, ohne dass sich an der Netto-Größe der Datei viel ändert und du ständig in diese Bedingung reinläufst.

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

                    @alcalzone sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                    In der Regel sollte das mit der Zeit immer seltener passieren.

                    Wie das? Die Adapter schreiben Werte in die Datenpunkte bzw. aktualisieren diese. Dabei wird der Wert (plus Zeitstempel?) in die states.jsonl geschrieben, oder? Das wird doch nicht weniger mit der Zeit.

                    Gut, ich habe ein oder zwei Steckdosen in den sonoff-Adapter hinzugefügt, sonst aber nur Updates der Adapter gemacht. Also wieso dann plötzlich die schnelle Verdoppelung der Dateigröße? Wenn die Diskwrites faktisch alleine von dieser Datei abhängen, dann hat sich das von etwa 5 Stunden auf 3 Minuten reduziert! Fällt dir etwas auf bei der Anzahl der Ausgabeereignisse (in meinem Bild oben)?

                    Das einzige was ich mir noch vorstellen könnte: Proxmox hat das bisher völlig falsch angezeigt (gab auch da Updates zu diesem Zeitpunkt). Kann ich mir aber eigentlich nicht vorstellen...

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

                      @dr-bakterius Die Datei ist erstmal append-only bis zum erneuten Schreiben nach Erreichen einer Schwelle. Jede Änderung eines States entspricht einer neuen Zeile, die angefügt wird. Wenn durch dieses Anfügen die Datei auf die doppelte Länge des letzten Kompressionsvorgangs angewachsen ist, wird ein neuer ausgelöst. Je mehr States du hast, desto länger dauert es, bis sich die Größe verdoppelt hat, weil die Baseline auch höher ist.

                      Wie viele States hast du denn insgesamt?

                      Und bist du ganz sicher, dass es an states.jsonl liegt und nicht objects.jsonl? Nicht dass einer der Adapter seit dem Update ständig seine Objekte neu schreibt. Da ist die Schwelle deutlich geringer und die Datenmenge wesentlich höher.

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

                        @alcalzone Ich habe jetzt mal zum Testen wieder auf file|file umgestellt. Da wurden 11.836 states und 10.960 objects konvertiert. Danach den Container neu gestartet und 10 Minuten beobachtet. In diesen 10 Minuten wurden deutlich weniger Schreibzugriffe lt. Proxmox durchgeführt.

                        Dann wieder zurück auf jsonl|jsonl und ich bin wieder da wo ich vorher war.

                        In den letzten 15 Minuten wurde die states.jsonl 5x neu geschrieben weil sich die Größe verdoppelt hatte. Die objects.jsonl ist anfangs um 15% angewachsen und bleibt seit 10 Minuten stabil auf ihrer Größe. Ich glaube also nicht, dass ein Adapter ständig seine Objekte neu schreibt.

                        Anfang des Jahres waren die Schreibzugriffe exorbitant höher als ich noch auf file|file war. Bei redis gingen diese deutlich zurück und dann mit jsonl sanken sie faktisch auf null. Und seit ende Juli sind sie plötzlich so hoch - höher als bei file! Ich verstehe es nicht...

                        apollon77 AlCalzone 2 Replies Last reply Reply Quote 0
                        • K
                          Kueppert last edited by

                          Hmmm, ich meine mich zu erinnern, dass ich damals bei der Umstellung auf JSONL irgendwas in einer Datei angepasst hab dafür...aber das wars auch schon, woran ich mich meine zu erinnern...man konnte doch das Verhalten bei JSONL selber etwas manipulieren/seinen Bedürfnissen anpassen? Ggf wurde da was überschrieben?

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

                            @dr-bakterius Naja Du hast zwei Adapter die recht viel ausgehende States hatten ... ggf hat sich ja da was geändert ... bzw @AlCalzone hatten wir nicht den Bug das ggf gar nicht compressed wurde und deswegen das eine setting im code hinzugefügt? 😉

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

                              @dr-bakterius sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                              11.836 states

                              Lass mal rechnen.
                              1000 Ausgabeereignisse alle 15 Sekunden, macht etwa 12.000 Schreibvorgänge in 3 Minuten.
                              Das deckt sich ziemlich genau mit deiner Beobachtung, dass alle 3 Minuten komprimiert wird, weil sich dann die DB-Größe verdoppelt hat.

                              @apollon77

                              hatten wir nicht den Bug das ggf gar nicht compressed wurde und deswegen das eine setting im code hinzugefügt?

                              Möglich. Ich weiß nicht genau, welche Version @Dr-Bakterius vorher im Einsatz hatte.

                              Anyways - hier kann man sicher noch Feintuning betreiben, genau dafür machen wir solche Tests ja. An sich ist die Auto-Kompression dafür gedacht, dass die Dateien größentechnisch nicht komplett aus dem Ruder laufen und das Laden etwas schneller geht.

                              Für Objects haben wir Größenfaktor 2, mind. 1000 Zeilen als Bedingung für Neu-Schreiben. Die 1000 sind hier die Anzahl der teils redundanten Zeilen in der DB, nicht die einzigartigen Objekte.
                              Für States ist die Einstellung aktuell identisch. Ich hab nur etwa halb so viele States und meine states.jsonl dümpelt irgendwo zwischen 2-3 MB herum. Also Größentechnisch nix wildes.

                              Vorschlag: wir heben die Schwellen deutlich an.
                              Objects: Faktor 2, bei mind. 25k Zeilen
                              States: Faktor 2, bei mind. 50k Zeilen (oder gar Faktor 10?)

                              Das wird dafür sorgen, dass die DBs deutlich seltener komprimiert werden - bei kleineren Installationen so gut wie nie. Ist jetzt vermutlich nicht schlimm, aber ggf. muss man es dann zeitgesteuert ab und an machen.

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

                                @alcalzone sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                                Vorschlag: wir heben die Schwellen deutlich an.
                                Objects: Faktor 2, bei mind. 25k Zeilen
                                States: Faktor 2, bei mind. 50k Zeilen (oder gar Faktor 10?)

                                Macht sinn und ja States Faktor 10

                                @Dr-Bakterius machst du uns bitte im js-controller ein issue dazu?

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

                                  @apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                                  machst du uns bitte im js-controller ein issue dazu?

                                  Erledigt. (https://github.com/ioBroker/ioBroker.js-controller/issues/1437)

                                  DrBakterius created this issue in ioBroker/ioBroker.js-controller

                                  closed jsonl compression #1437

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

                                    @apollon77 @AlCalzone vllt willst Du hier sagen wie man das jetzt schon in der iobroker.json konfigurieren kann?

                                    AlCalzone Dr. Bakterius 2 Replies Last reply Reply Quote 0
                                    • amg_666
                                      amg_666 @apollon77 last edited by

                                      @apollon77 Hallo, das ist jetzt vlt etwas off-topic aber ich lese diesen thread mit und bei deiner Antwort zu den "state changes" bin ich etwas stutzig geworden.
                                      Mein System (proxmox container mit debian 10) läuft stabil aber ich habe beim Sonoff Adapter sehr hohe Werte:
                                      bdbc8ee0-f9e6-41f7-bf67-b99f9fd9c3e7-grafik.png

                                      Muss ich mir da Sorgen machen oder ist das eben so, wenn man viele (ca 70) Geräte an dem Adapter hat. die auch viele Status-Updates senden?

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

                                        @apollon77 Öhhhm, geht das? 😅

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

                                          @amg_666 naja hast dir die Frage an sich selbst beantwortet. Wenn es viele state changes gibt dann willst du das ja haben also …. Viel state changes der Geräte die beim Adapter ankommen ergeben (logischerweise) auch die gleiche Anzahl States changes in iobroker. ;-))

                                          Am Ende ist das doch auch nicht schlimm und genau das was du willst.

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

                                            @apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:

                                            @AlCalzone vllt willst Du hier sagen wie man das jetzt schon in der iobroker.json konfigurieren kann?

                                            Wäre genau meine nächste Frage gewesen. 😉

                                            apollon77 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            945
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            35
                                            405
                                            53887
                                            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