NEWS
ioBroker sehr hohe Diskwrites in Proxmox
-
@jleg Genau das ist auch meine Frage!
Der Default würde dir alle 5 Minuten die ganze DB speichern. Wenn states und objects in einer Redis sind dann passiert das auch. bei mir wären das 225MB.
An der Stelle macht es sehr grossen sinn mal mindestens Redis persistenz auf "appendonly" umzustellen, dann sollte die Compaction seltener passieren, aber bissl mehr platz brauchen.
Ich habe bei mir (wie auch im Redis Forum Artikel von mir vorgeschlagen) STates und Objects in getrennte Redis gepackt und hier States lasse ich nach änderungen schreiben und objekt lasse ich aof schreiben
-
Mein Diskwrite sieht so aus:
meine Dumb.rdb
christoph@iobroker1:/opt/iobroker$ sudo du /var/lib/redis/dump.rdb 202988 /var/lib/redis/dump.rdb
habe alles auf Standart damals gelassen, nur Installiert.
Überlege nun auf die JsonL Datenbank Umzustellen.
Wenns da so gute Rückmeldungen gibt, geh ich mal ans Backup und stelle danach um.
Gebe Rückmeldung wie es sich danach verhält. -
@adnim sagte in ioBroker sehr hohe Diskwrites in Proxmox:
habe alles auf Standart damals gelassen, nur Installiert.
(nicht persönlich nehmen) Das ist genau das Problem mit "Ich stell mal eben alles auf Redis um" ... ohne drüber nachzudenken passiert sowas.
Hattest Du das vorher gelesen? https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick -
@apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:
nicht persönlich nehmen) Das ist genau das Problem mit "Ich stell mal eben alles auf Redis um" ... ohne drüber nachzudenken passiert sowas.
Hattest Du das vorher gelesen? https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblickHi,
nee nehme nix persönlich, bin ja froh das es noch aufgefallen ist und ich was dagegen machen kann, bzw. Ihr mir hier versucht zu helfen!War der Meinung ich hätte mir das damals durchgelesen. Aber so schlau daraus zu Lesen das ich meine Festplatte innerhalb kürzester Zeit mit Standard Einstellungen Schrotte war ich damals nicht!
Vg
-
Hab genau 0 Uhr auch mal auf festen Schreibzyklus alle 60 min für die objects.json umgestellt und die Auswirkung ist recht deutlich. Meine Datei hat 28 MB und wurde vorher zT alle 1-2 Minuten geschrieben, aber aller spätestens alle 5 min wenn ical und dwd liefen.
Tag (max)
Tag (Durchsch.)
Promox läuft noch keine 2 Tage. In den ersten 27 h hatte ich 70 GB total disk write. Da war aber wahrs. auch Aufsetzen, Snapshot usw dabei. In den letzten 8 h kamen nur noch 2 GB hinzu. Ergäbe 250 MB/Stunde.
-
@diginix sagte in ioBroker sehr hohe Diskwrites in Proxmox:
In den letzten 8 h kamen nur noch 2 GB hinzu. Ergäbe 250 MB/Stunde.
Also 6 GB am Tag. Je nach Größe der ioBroker-Installation ein guter Wert. Ich hatte mit redis für die States, den neuen Controller und die Objects nur alle 60 Minuten etwa 12 GB am Tag.
Mit JSONL komme ich aber auf nur noch auf <80 MB am Tag. Also nochmals um über 99% reduziert!
-
Mein Diskwrite hat sich mit JS 3.2 und redis halbiert!
von 40 auf 18GB/Tag. Habe nichts an Config's geändert.
Habt ihr dafür eine Erklärung?
-
@stenmic sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Habt ihr dafür eine Erklärung?
Was möchtest du denn wissen?
-
@stenmic Alles auf redis oder sind nur States auf Redis und objects weiterhin "file"? Wenn zweiteres dann ja, der controller hat was optimiert
-
@apollon77 nur die States sind redis.
Danke für die Erklärung. -
Ich habe heute noch was herausgefunden. Ich habe das loglevel vom host in der iobroker.json von info auf warn gestellt. Das hat mein dikwrite von 500k auf 100k verringert
Zugegeben ich habe gleichzeitig noch ein paar Adapter von info auf warn umgestellt, aber erfahrungsgemäß war doch der größte Teil im log vom host (info).
@apollon77 Könnte man es nicht einfacher gestalten den loglevel des host zu verändern? Weil ich denke nicht das der Standart User in der iobroker.json rumfummelt und ich denke auch das würde bei dem ein oder anderen die Lebenszeit der SD Karte verlängern. Was meinst du?
-
@robbsen ich weiß nicht ob wir da jetzt Äpfel mit Birnen vergleichen aber bei meinem proxmox sieht das genauso aus wie bei dir, nur dass die Spitzen bei Diskwrite nicht bei 10-14M liegen sondern bei 100-120k ...
Also bei mir Intel NUC6, proxmox mit Debian 10 und iobroker als VM (2CPU, 8GB RAM) und ich habe noch keine weiteren Anwedungen drauf laufen (und nutze übrigens History). Das alles können natürlich mögliche Quellen sein, dass die Werte stark abweichen...
-
@amg_666 Wenn er nur das Loglevel vom Host hochgesetzt hat, dann kann das vorher höhere Diskwrite schon vom Host und dessen "info" Zeilen im Log stammen. Müsste sich ja auch an der reinen Dateigröße der Logfiles erkennen lassen.
@saeft_2003 Wie groß sind denn deine Logs der letzten Tage? Und das von heute und zukünftige müssten dann deutlich kleiner ausfallen. -
@saeft_2003 sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Könnte man es nicht einfacher gestalten den loglevel des host zu verändern? Weil ich denke nicht das der Standart User in der iobroker.json rumfummelt und ich denke auch das würde bei dem ein oder anderen die Lebenszeit der SD Karte verlängern. Was meinst du?
Geht doch mit Admin 5
-
Ah ok ich habe noch kein Admin 5 im Einsatz. Dann sollte das ja für die Zukunft passen
-
@diginix sagte in ioBroker sehr hohe Diskwrites in Proxmox:
@saeft_2003 Wie groß sind denn deine Logs der letzten Tage? Und das von heute und zukünftige müssten dann deutlich kleiner ausfallen.
Gezippt sind diese 5-6kb groß. Übermorgen habe ich einen kompletten Tag mit host auf warn dann kann ich sagen wie groß das log dann ist.
-
Bei mir scheint der "Übeltäter" die Persistenz der Redis Datenbank zu sein.
Ich hatte die Defaultwerte mit 5 min bei geänderten 10 keys.Ich habe die Backup Frequenz mehr als den Faktor 10 reduziert.
save 30000 1
save 3600 10
save 60 10000 -
@marty56 ja das ist so eine sache. Aus dem Grund laufen bei mir zwei redis Instanzen und so objects und States getrennt. Objects mir aof persistent und States mit normaler persistent mit angepassten Werten. Das war bisher das optimum.
-
@apollon77 Danke für den Hinweis.
Allgemein.
Vorab. Ich bewundere das Engagement von den vielen ehrenamtlichen Entwicklern und die tolle Leistung. Ich liebe iobroker immer noch, aber
die Komplexität von iobroker ist viel zu groß.Es ist sehr bedauerlich, dass der Nutzer sich mit dieser Art von "Eingeweide"- Konfiguration überhaupt beschäftigen muss
Mich hat das Thema fast 2 h gekostet, bis ich den ganzen "Quatsch" mit der Redis Config für diese Spezialität so halbwegs verstanden und geändert hatte.
Außerdem hätte ich nicht Promox genutzt, dann wäre mir die SSD- Schreiberei gar nicht aufgefallen und z.B. auf einem Raspberry wäre mir die SD Karte nach einem halben Jahr abgeraucht. Ich hätte mich gewundert und beim nächsten Ausfall wäre ich vermutlich zu Amazon oder Google gewechselt und hätte zähneknirschend auf etliche Funktionen verzichtet.
Klar, wenn ich hauptberuflich Systemadministrator wäre, dann würde ich darüber nur schmunzeln und die Sache wäre in einer Minute erledigt.
So muss ich ein Know How aufbauen, was ich einmal in meinem Leben benötige, in einem Monat ohnehin wieder vergessen haben und bei der nächsten ioBroker Installation in 2 Jahren wiederholt sich dieser Prozess wieder. Das killt jegliche Produktivität.
So wird ioBroker leider nie Mainstream und nur nutzbar für Linux Admins und Nerds. Die Folge, die drei Gatekeeper, Apple, Google und Amazon werden sich den Markt unter sich aufteilen, mit schlechten Ansätzen dominieren und die IoT- Hersteller mit Lizenzen zu teuren Produkte zwingen.
Das ist sehr schade und eine verpasste Chance.
-
@Marty56
Viele Möglichkeiten ergeben quasi zwangsläufig eine höhere Komplexität.Wenn du nur einen Radiobutton zur Verfügung stellst, dann ist das ganze halt wesentlich einfacher, du bist aber als User auf die beiden Einstellungen beschränkt. Wenn du alle Möglichkeiten zur Verfügung stellst kommst du auch mit einem simplen EIN/AUS-Schalter nicht mehr hin.