Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Iobroker instabil und Verzögert Redis Datenbank sehr groß

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Iobroker instabil und Verzögert Redis Datenbank sehr groß

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

      @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

      Meine Vermutung geht Richtung Arbeitsspeicher

      Ist auch so

      @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

      Swap: 2047 2047

      N 1 Reply Last reply Reply Quote 0
      • N
        nash1975 @crunchip last edited by

        @crunchip 2022-07-10 08_52_59-pi@raspberrypi_ ~.png

        So sieht übrigens es aus, wenn ich htop mal laufen lasse.

        Wie kriegt man denn die Redis DB aufgeräumt. Kann man alte Einträge löschen? Oder wie sonst alte ungenutzte Einträge rauskriegen. Sonst wird die ja immer größer mit der Zeit.

        VG,
        Jens

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

          @nash1975 mit Redis kenn ich mich nicht so gut aus, generell zu Redis gibt es https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick oder auch https://www.iobroker.net/#de/documentation/config/redis.md

          oder
          https://redis.io/docs/manual/eviction/

          hast du states und objects auf redis umgestellt? kannst du prüfen mittels

          iobroker setup custom
          
          N 1 Reply Last reply Reply Quote 0
          • N
            nash1975 @crunchip last edited by

            @crunchip
            Ja. States und Objects laufen auf Redis.
            Ich hatte zu Beginn meiner ioBroker Karriere den ioBroker Kurs von Haus-Automatisierung durchgearbeitet. Da wurde das so empfohlen.

            Hatte (als meine Probleme begannen) schon gelesen, dass die Objects vielleicht besser auf "Files" geblieben wären.
            Macht ein Wechsel jetzt noch Sinn? Oder ärgere ich mich dann nur über die Latenzen aufgrund einer riesigen Datei-Datenbank?

            Den verlinkten Redis Artikel hatte ich bereits gelesen. Aber der hilft mir nicht wirklich.

            pi@raspberrypi:~ $ 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
            

            VG,
            Jens

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

              @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

              Objekte: 4346, Zustände: 3734

              @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

              Hatte (als meine Probleme begannen) schon gelesen, dass die Objects vielleicht besser auf "Files" geblieben wären.

              bei den Zahlen, wäre es meiner Meinung nach gar nicht nötig gewesen umzustellen

              @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

              Macht ein Wechsel jetzt noch Sinn?

              das kann ich dir nicht sagen, ich hatte auch redis laufen, bin allerdings umgestiegen auf jsonl und habe bisher keine Probleme.
              habe aktuell Objekte: 46836, Zustände: 43513

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

                @nash1975 sagte in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

                2907072774

                ok, die Redis-Datenpunkte fressen so um 2,7 GByte, bei mir sind es 16Mbyte (bei auch fast 40.000 States).
                Den Befehl redis-cli --bigkeys kannte ich noch nicht, danke dafür.

                Und der hat die ja schon aufgeführt welche Datenpunkte so "fett" sind also nicht alle, aber den dicksten. Bei mir ist es ein GIF des Wetterradars, bei dir ist es wohl der ring.0 Adapter (Könnte man ja noch genauer untersuchen)

                Also, weg damit (Soweit ich das verstehe müssten die Datenpunkte in REDIS gelöscht werden sobald diese in ioBroker gelöscht werden) oder flucht nach vorne - Raspi mit 8 statt 4 GByte.

                haus-automatisierung N 2 Replies Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @BananaJoe last edited by

                  @bananajoe Gerade mal nachgeschaut - der Ring Adapter nutzt fleißig BinaryStates. Im Falle von Redis landet das alles im Arbeitsspeicher:

                  https://github.com/iobroker-community-adapters/ioBroker.ring/blob/788bf10f9e4d4a4fafadff1c8eb171a6c84fdb11/src/main.ts#L200-L202

                  BananaJoe 1 Reply Last reply Reply Quote 0
                  • BananaJoe
                    BananaJoe Most Active @haus-automatisierung last edited by BananaJoe

                    @haus-automatisierung je nachdem wie oft sich die Datenpunkte ändern ist das ja auch an sich keine schlechte Sache 🙂
                    Außer bei so vielen Rings an einem Raspberry. Der scheint da Filmchen abzuspeichern, eventuell kann man das im Adapter begrenzen?

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

                      @bananajoe said in Iobroker instabil und Verzögert Redis Datenbank sehr groß:

                      l

                      Erstmal danke an alle für die Hilfe.
                      Die Ring Instanz hab ich gestern Abend gelöscht.
                      Den kompletten Ring.0 Verzeichnisbaum unter "Objekte" ebenfalls.

                      Jetzt nach 24h ist die Redis Datenbank aber immer noch genauso groß.
                      Gibt es denn nicht einen automatischen Mechanismus der so eine Datenbank "aufräumt" und Objekte löscht die nicht mehr benutzt werden?

                      Wie kann ich sowas denn manuell machen?

                      Wenn es sowas nicht gibt wäre es ja auch nur eine Frage der Zeit bis die 8GB von einem größeren Raspi voll wären.

                      Es gibt ja den Redis Flushall Befehl. Kann ich den benutzen und die Datenbank baut sich wieder mit den States im Einsatz auf und ioBroker bleibt einsatzfähig?
                      Oder läuft danach gar nichts mehr?

                      # Memory
                      used_memory:2919110636
                      used_memory_human:2.72G
                      used_memory_rss:1025953792
                      used_memory_rss_human:978.43M
                      used_memory_peak:2939070180
                      used_memory_peak_human:2.74G
                      used_memory_peak_perc:99.32%
                      used_memory_overhead:3924390
                      used_memory_startup:604088
                      used_memory_dataset:2915186246
                      used_memory_dataset_perc:99.89%
                      allocator_allocated:2919125336
                      allocator_active:1025872896
                      allocator_resident:1025872896
                      total_system_memory:4024160256
                      total_system_memory_human:3.75G
                      used_memory_lua:80896
                      used_memory_lua_human:79.00K
                      used_memory_scripts:5416
                      used_memory_scripts_human:5.29K
                      number_of_cached_scripts:8
                      maxmemory:3221225472
                      maxmemory_human:3.00G
                      maxmemory_policy:noeviction
                      allocator_frag_ratio:0.35
                      allocator_frag_bytes:2401714856
                      allocator_rss_ratio:1.00
                      allocator_rss_bytes:0
                      rss_overhead_ratio:1.00
                      rss_overhead_bytes:80896
                      mem_fragmentation_ratio:0.35
                      mem_fragmentation_bytes:-1893171544
                      mem_not_counted_for_evict:0
                      mem_replication_backlog:0
                      mem_clients_slaves:0
                      mem_clients_normal:1762546
                      mem_aof_buffer:0
                      mem_allocator:libc
                      active_defrag_running:0
                      lazyfree_pending_objects:0
                      

                      Viele Grüße,
                      Jens

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

                        @nash1975 so genau weis ich das nicht bzw. kann ich dir nicht benantworten.

                        Vermutlich nicht - weil die Daten eben alle im Redis liegen.
                        Es könnte etwas gehen wir alles im Redis löschen und Backup wieder einspielen.

                        Oder im Redis löschen:

                        redis-cli --scan --pattern cfg.f.ring.0* 
                        

                        sollte die ausschließlich die Ring-Datenpunkte anzeigen (im ioBroker gibt es unter Objekte ja kein ring.0. mehr, richtig?
                        und mit

                        redis-cli --scan --pattern cfg.f.ring.0* | xargs redis-cli del
                        

                        könnte man die dann löschen (von hier geklaut: https://linuxhint.com/delete-keys-redis-database/)

                        Wenn er keine findet, prima, sind die schon weg.

                        Wie viel RAM nutzt redis denn jetzt? Kann sein das er die Datei nicht kleiner macht sondern den freien Platz später wieder benutzt. Aber eben nicht alles lädt. Laut Google könnte es sein das die eben nicht schrumpft - aber der RAM Verbrauch war dein Problem, nicht was es auf der Festplatte belegt.

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

                          @bananajoe
                          Hallo,
                          also das mit dem Löschen der Ring Objekte hat schonmal gut geklappt

                          Ich hab jetzt wieder 1,7GB available.

                          Als nächstes installier ich wieder den Ring Adapter und schau mal, ob ich irgendwo einstellen kann, dass nicht so viel nach Redis geschrieben wird.

                          Danke an alle.
                          Die Community ist echt topp.

                          pi@raspberrypi:~ $ free -m
                                        total        used        free      shared  buff/cache   available
                          Mem:           3837        1973        1518          10         345        1763
                          Swap:          2047        1106         941
                          
                          # Memory
                          used_memory:163474536
                          used_memory_human:155.90M
                          used_memory_rss:567595008
                          used_memory_rss_human:541.30M
                          used_memory_peak:2939070180
                          used_memory_peak_human:2.74G
                          used_memory_peak_perc:5.56%
                          used_memory_overhead:3343806
                          used_memory_startup:604088
                          used_memory_dataset:160130730
                          used_memory_dataset_perc:98.32%
                          allocator_allocated:163440760
                          allocator_active:567526400
                          allocator_resident:567526400
                          total_system_memory:4024160256
                          total_system_memory_human:3.75G
                          used_memory_lua:68608
                          used_memory_lua_human:67.00K
                          used_memory_scripts:5416
                          used_memory_scripts_human:5.29K
                          number_of_cached_scripts:8
                          maxmemory:3221225472
                          maxmemory_human:3.00G
                          maxmemory_policy:noeviction
                          allocator_frag_ratio:3.47
                          allocator_frag_bytes:404085640
                          allocator_rss_ratio:1.00
                          allocator_rss_bytes:0
                          rss_overhead_ratio:1.00
                          rss_overhead_bytes:68608
                          mem_fragmentation_ratio:3.47
                          mem_fragmentation_bytes:404154248
                          mem_not_counted_for_evict:0
                          mem_replication_backlog:0
                          mem_clients_slaves:0
                          mem_clients_normal:1961674
                          mem_aof_buffer:0
                          mem_allocator:libc
                          active_defrag_running:0
                          lazyfree_pending_objects:0
                          
                          manuxi 1 Reply Last reply Reply Quote 0
                          • manuxi
                            manuxi @nash1975 last edited by

                            @nash1975 Vielen Dank für diese Infos. Genau dasselbe ist mir scheinbar auch passiert. Ich habe 20GB RAM auf eminer NAS, die durch redis zugelaufen sind. Nach Löschen der ring-Daten läuft er jetzt wieder einigermaßen.
                            Wie hast Du das Problem gelöst, dass das immer wieder voll läuft?

                            N 1 Reply Last reply Reply Quote 0
                            • N
                              nash1975 @manuxi last edited by

                              @manuxi
                              Ich glaube man konnte im Ring Adapter Einstellungen zum permanenten Speichern der Ring Mediendateien machen.
                              Bin mir aber nicht sicher und nutze ioBroker nicht mehr. Bin vor einigen Monaten zu Home Assistant gewechselt.

                              VG

                              manuxi 1 Reply Last reply Reply Quote 0
                              • manuxi
                                manuxi @nash1975 last edited by

                                @nash1975 Hm, so sieht das bei mir aus, daran habe ich nichts geändert. Scheint also nicht zu funktionieren...5bcf9b1d-ad45-4226-af31-81325db1c310-image.png
                                Vielleicht hat ja jemand anderes noch eine Idee...

                                arteck 1 Reply Last reply Reply Quote 0
                                • arteck
                                  arteck Developer Most Active @manuxi last edited by arteck

                                  @manuxi kannst du da nicht direkten pfad angeben

                                  also opt/iobroker/iobroker-data und dann den dateinamen

                                  ansonste mach ein isseu bei adapter in GIT auf

                                  manuxi 1 Reply Last reply Reply Quote 0
                                  • manuxi
                                    manuxi @arteck last edited by

                                    @arteck Es war mir nicht klar, wie sich der Pfad bildet. Werd ich mir mal anschauen. Danke für den Hinweis!

                                    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

                                    860
                                    Online

                                    32.0k
                                    Users

                                    80.5k
                                    Topics

                                    1.3m
                                    Posts

                                    6
                                    17
                                    896
                                    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