NEWS
ioBroker sehr hohe Diskwrites in Proxmox
-
@marty56 sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Außerdem hätte ich nicht Promox genutzt, dann wäre mir die SSD- Schreiberei gar nicht aufgefallen
da ich alles getrennt laufen habe,
verglichen mit anderen CT's oder VM's , ist iobroker nicht der "Übeltäter", da hab ich z.b. beim unifi controller oder OMV die selben Werte, den "Abschuß" liefert meine Influx
bei aktuell knapp 24 Tagen Laufzeit- iobroker 123GB
- influxDB 1.59TB
-
@marty56 äääähhhmm. Das - vor allem in Kombi mit redis - kapiere ich jetzt nicht.
Wer bitte sagt das du redis nutzen sollst? Nur weil es geht?? Der Standard ist die file dB und die ist out of the Box da und ist für 99,x Prozent der User und use cases das sinnvolle.
Und mit der musst du dich um nichts kümmern.Redis ist für Seeeehr speziellere Fälle. Gibt sogar einen forum Thread zu redis und wann es Sinn macht und was es zu beachten gibt.
Von daher muss ich das Feedback leider in der form entschieden zurückweisen. Vllt sind wir eher an dem Punkt das ioBroker schon an einigen Stellen Zuviel kann und dann „spielekinder“ ( ) Dinge tun weil sie halt gehen und sie denken es macht Sinn. Aber ehrlich: dann gilt durchaus „selber schuld“.
-
@apollon77
Erstmal ich wollte niemanden verletzten. Falls ich das doch getan habe, bitte ich um Entschuldigung.Ich habe redis nur aus einem Grund ausgewählt, weil ich gehofft habe, mit einer In-Memory DB das Wear-Out meiner SSD zu verlangsamen. Defakto habe ich - durch meine "nachlässige" Konfiguration - genau das Gegenteil erreicht.
Klar mein Fehler. Aber das war nicht mein Punkt. Mein Punkt ist, dass Otto Normaluser sich mit solchen Sachen überhaupt herumschlagen muss. Und wenn er das nicht macht, zerschießt er sich sein System nach kurzer Zeit.Der file-basierte Ansatz hat ja genau dasselbe Problem. Hier muss ich in irgendwelchen Json Files neue Felder einfügen, die das Schreiben reduzieren. Meines Wissen gibt es dafür auch kein selbsterklärendes UI.
Die Hürde ist ähnlich hoch, wie bei Redis. -
@marty56 sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Der file-basierte Ansatz hat ja genau dasselbe Problem. Hier muss ich in irgendwelchen Json Files neue Felder einfügen, die das Schreiben reduzieren. Meines Wissen gibt es dafür auch kein selbsterklärendes UI.
Die Hürde ist ähnlich hoch, wie bei Redis.Nö, mit Admin 5 kannst du das besagte JSON via UI modifizieren.
-
@marty56
ich habe eher den Eindruck, dass Du dich aufgrund eines Wertes der dir aufgefallen ist (Wearout) künstlich verrückt machst, ohne dass irgend etwas los ist.[EDIT]
auflschlussreich https://forum.iobroker.net/post/566162 -
@marty56 an sich muss auch mit file dB niemand an dem Wert etwa ändern. Mit js Controller 3.2/3 haben wir hier optimiert. Und für Controller 3.4 stellen wir Vorauss auf jsonl um was dann nochmals optimiert.
Am Ende ist die Standardeinstellung ein Kompromiss zwischen wrong Datenverlust im Crash Fall und nicht Zuviel Schreiblast. Also auch wer an dem Wert rumdreht (und das „muss“ keiner) sollte verstehen was er da tut weil es Konsequenzen haben kann.
Von daher sieh es doch mal so: vllt gibt es ja einen Grund das bestimmte Einstellungen explizit nicht so einfach änderbar sind. ;-))
-
@apollon77 Ok. Dann freue ich mich auf die Updates.
Nachdem ich redis etwas wenig schreiben lasse, ist mein Disk IO auf ca. 500 KB pro Stunde gesunken.
Diese 500 KB kann ich fast vollständig der SQLite3 DB zuordnen. Wenn ich die ausschalte, dann liegt das Disk IO bei 0 Byte (was auch schon wieder komisch ist, weil das Log ja noch geschrieben wird).
Kann ich statt SQLite3 eine andere Datenbank nehmen, die so ähnlich wie redis jetzt bei mir nur einmal pro Stunde schreibt?
-
@marty56 sagte: wie redis jetzt bei mir nur einmal pro Stunde schreibt?
Hast Du eine USV? Falls nicht, ist eine Stunde sehr lang.
-
-
@bbtown keine Ahnung. Ich hatte nach 16 Tagen 5 TByte geschrieben. Das erschien mir schon relativ viel
-
@marty56 naja eine Datenbank schreibt Daten die gespeichert werden sollen. Wenn primär Daten dazu kommen sollte es an sich fast egal sein ob alles einmal pro Stunde oder direkt geschrieben wird. Bei SQLite wär ich mir da nicht gaaaanz so sicher ob das equivalent ist aber so weit auseinander sollte es auch wider nicht sein.
Datenbanken haben von Natur aus die Anforderung keine Daten zu verlieren also ob Du eine dB findest die das „bricht“ weiß ich nicht
-
@apollon77 Hat sich denn im controller etwas geändert? Ich habe ja schon seit Monaten 'jsonl' in Betrieb und die geschriebene Datenmenge war seitdem erfreulich gering. Doch seit Ende Juli als die ganzen Updates aufschlugen habe ich wieder eine extreme Schreiblast laut Proxmox (etwa hundertfach!). Laut htop ist es der Prozess iobroker.js-controller. Mit deutlichem Abstand folgt io.backitup.0. Ich habe mal alle Instanzen gruppenweise deaktiviert. Da hat sich nichts geändert. Erst wenn iobroker gestoppt wird, fallen die Schreibzugriffe wieder auf faktisch Null.
-
@dr-bakterius Geändert hat sich nichts. Der controller 3.3 hat ne neue Version der jsonl mitgebracht und wenn Du immer noch jsonl nutzt dann sollte das auch weiterhin so sein. AUch bei jsonl hat sich nicht wirklich was geändert.
Also checke mal "iobroker setup custom" zuerst. ansonsten muss irgendein adapter "schuld" sein. Den müsstest Du dann finden denke ich
-
@apollon77 sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Also checke mal "iobroker setup custom"
Current configuration: - Objects database: - Type: jsonl - Host/Unix Socket: 127.0.0.1 - Port: 9001 - States database: - Type: jsonl - Host/Unix Socket: 127.0.0.1 - Port: 9000 - Data Directory: ../../iobroker-data/
Sieht soweit okay aus. Und wie gesagt, ich habe alle Instanzen gestoppt und trotzdem kommt es etwa alle drei Minuten zu einem hohen Diskwrite.
'htop' zeigt:
Und unter Proxmox sieht man den gewaltigen Anstieg:
Weiß echt nicht was ich noch prüfen könnte...
-
@dr-bakterius seitdem jsonl angeboten wird, habe ich ioBroker umgestellt, habe die Diskwrites aber nicht weiter beobachtet.. Controller update habe ich auch schon eine Zeit lang gemacht.
So schaut es derzeit aus:
iobroker setup custom:Current configuration: - Objects database: - Type: jsonl - Host/Unix Socket: 0.0.0.0 - Port: 9001 - States database: - Type: jsonl - Host/Unix Socket: 0.0.0.0 - Port: 9000 - Data Directory: ../../iobroker-data/
Was ich am 17.8. um 20 Uhr gemacht habe, das die Werte seit dem wieder höher sind muss ich mal recherchieren...
Edit: hmm nichts spannendes passiert, außer das wie vorher auch so ein paar Adapter abfragen starten..
-
@fredf sagte in ioBroker sehr hohe Diskwrites in Proxmox:
iobroker setup custom
hab auch mal gerade geschaut, hab auch jsonl bei beidem drin seit langem. Disk io sieht bei mir unauffällig aus:
PS: wie komme ich aus dem setup custom wieder raus? ^^ will nichts ändern...
-
@kueppert sagte in ioBroker sehr hohe Diskwrites in Proxmox:
PS: wie komme ich aus dem setup custom wieder raus? ^^ will nichts ändern...
Einfach alles mit Enter bestätigen
Edit: Bzw. mit Strg + c abbrechen
-
@fredf war in der Proxmox Konsole, da geht kein STRG + C. Hab einfach alles bestätigt
-
@kueppert sagte in ioBroker sehr hohe Diskwrites in Proxmox:
Disk io sieht bei mir unauffällig aus
Also ich war vor dem Anstieg noch wesentlich weiter unten als du - jetzt habe ich mehr als das doppelte von dir.
Und wie gesagt, alle drei Minuten der Zugriff:
Wird jetzt sicher nicht gleich meine SSD schrotten, aber interessieren würde mich doch was das ist...
-
Dann wiederhole ich was ich oben geschrieben habe: da müsste ein Adapter „schuld“ sein. Finde raus welcher.
Alternativ schau was die jsonl files in iobroker-data machen. Sie müssten ja dann zu dem genannten Zeitpunkt neu komprimiert werden - ergo kleiner werden. Dann schau welches file es ist.