NEWS
ioBroker: 25GB pro Tag wg states.json + states.json.bak
-
Hm, bei mir sind es 100 MB und ich habe 27398 Objekte
-
Vielen Dankfür Eure Antworten.
@sigi234 (zuerst, weil Antwort einfacher): Bei mir steht
"Objekte: 11762, Zustände: 10039"
Die states Dateien sind jeweils etwas zwischen 3 und 4 MByte. Und werden alle 20 bis 30 Sekunden geschrieben. Damit kommt man auf 25GB bis 30GB pro Tag.
Das passt auch zur Anzeige des Programms SsdReady@UncleSam & @arteck
Danke für Euren Hinweis auf Redis.
Redis kenne ich nicht, habe nur etliche Problemposts hier im Forum dazu gesehen - allerdings nicht studiert.
Redis unter Windows scheint limitiert zu sein. Version Redis 2.4.5 von 2011. Das klingt nicht gut.
Eine andere Anleitung von 2018 startet mit einer zusätzlichen Installation von Linux https://redislabs.com/blog/redis-on-windows-10/ Klingt auch nicht sehr verlockend.Kann man die states-Dateien verlagern? An meinem System hängt für eine andere Applikation noch eine klassische WD-Purple Platte, auf der ich auch meine ioBroker history Daten ablege. Die schreibt für die andere Applikation praktisch immer durch und ist auch dafür gebaut.
Die sollte also mit den Schreibmengen besser zu recht kommen.Aber ich finde keine Konfigurationsmöglichkeit für den Verwahrort der states-Dateien.
-
@klassisch ..... Okay.... erst mal Sorry..... ich scheine das nicht richtig zu verstehen.... ich habe "Objekte: 20868, Zustände: 19046" also werden dann so alle 30 Sekunden 3 - 4 MB geschrieben (und nach 30 Sekunden wieder Überschrieben) ~ 30GB/Tag
Also so ca. 11,1 TB im Jahr, bei einer durchschnittlichen Lebensdauer einer SSD von 220 TB... habe ich noch so zwei - drei Jahre Zeit diese Auszutauschen, dann Kosten die 500GB SSDs auch nicht die Welt..... oder übersehe ich da noch ein Problem?
Was ist denn jetzt das Größere Übel.... eine Programm zu nutzen das seit Jahren nicht mehr gepflegt wird oder alle paar Jahre eine neue SSD für 50 Euro zu Kaufen?..... Ich bitte um Aufklärung
-
@Master67 Bei einer SSD sollte das zu verkraften sein - wenn es denn dabei bleibt.
Dennoch ist es in Relation zu Windows alleine auffällig viel. Und da frage ich mich, ob das so sein muß.
Habe früher auch mal SBCs für ioBroker genutzt und da wird es für die SD Karten schon kritisch und auch eine eMMC ist nicht beliebig belastbar.
Und ja, unter Windows scheinen mir die o.g. Redis Opionen derzeit nicht sehr verlockend. Vielleicht gibt es ja noch was angenehmeres.
Oder ich finde einen Weg, die "Haupttäter" zu verschieben.
In meinem Fall ist der Rechner gebraucht und die SSD nicht mehr taufrisch. Da macht es schon Sinn, mal zu sehen, wieviel da zu erwarten ist. -
@klassisch sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Redis unter Windows scheint limitiert zu sein. Version Redis 2.4.5 von 2011. Das klingt nicht gut.
Eine andere Anleitung von 2018 startet mit einer zusätzlichen Installation von Linux https://redislabs.com/blog/redis-on-windows-10/ Klingt auch nicht sehr verlockend.Wenn du unter Windows 10 eine saubere Installation von ioBroker und Redis willst, dann empfehle ich Docker zu verwenden. Damit sparst du dir auch irgendwelche NodeJS Updates und hast darunter immer das aktuellste (Linux) OS.
Docker ist einfach zu installieren und mit Backitup kannst du ioBroker problemlos von Windows auf Docker umziehen.
Falls du unbedingt weniger Schreibzugriffe auf deine HD willst und dir das Alter der Zustände egal ist, kannst du mal versuchen, was passiert, wenn du eine RAM Disk verwendest und die z.B. 1x pro Stunde auf die HD/SSD sicherst. Ich hätte nicht gedacht, dass ich im Jahr 2020 noch über RAM Disks rede
-
@UncleSam sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Ich hätte nicht gedacht, dass ich im Jahr 2020 noch über RAM Disks rede
Ich auch nicht und möchte das auch nicht wirklich. Wenn es bei den ca. 30GB pro Tag, also ca. 10 TBW pro Jahr bleibt, ist das für mich ok. So viel in etwa habe ich auch letztes Jahr verloren und das ist locker eingepreist.
Aber nach meinen Aufzeichnungen habe ich jetzt auf diesem Rechner in den letzten 68Tagen 22TBW verloren. Und da lohnt sich schon ein genaueres Hinsehen. Und dabei war ioBroker die erste - und noch immer die einzige - auffällige Applikation. Aber natürlich weit weg vom o.g. Wert. Ich beobachte weiter...
Linux und Docker möchte ich mir derzeit nicht wirklich antun. Bin gerade recht zufrieden, daß alles unter dem gewohnten und stabilen Win läuft. Das kann ich (fern-)warten und ich komme einigermassen zu recht. Wie gesagt, da laufen noch andere Applikationen, die es nur unter Win gibt und die allerdings auf die Purple HD zugreifen. -
@klassisch sagte:
Die states Dateien sind jeweils etwas zwischen 3 und 4 MByte. Und werden alle 20 bis 30 Sekunden geschrieben.
Das kann man ändern: Ändere in der Datei iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemFileDB.js in Zeile 66 den Wert 30000 in z.B. 300000, dann wird nach ioBroker-Neustart nur noch alle 5 Minuten geschrieben.
Ich hatte es erst mit der Config-Datei conf/iobroker-dist.json versucht, was allerdings nicht funktioniert hat. -
@paul53 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemFileDB.js
Vielen Dank! Die Stelle habe ich gefunden
parseInt(this.settings.connection.writeFileInterval) : 300000;
Muß man vor dem Rückspeichern ioBroker anhalten, damit da nichts durcheinander kommt?
-
@klassisch sagte:
Muß man vor dem Rückspeichern ioBroker anhalten, damit da nichts durcheinander kommt?
Nein, die Datei wird nur bei ioBroker-Start eingelesen.
-
@paul53 Ok, habe rückgespeichert und iobroker restartet. Mal sehen, wie das funktioniert. Ich nehme an, daß bei einem regulären Abschalten von ioBroker - also iobroker stop oder Stop oder Restart von Windows - die aktuellen States gesichert werden.
-
@klassisch sagte:
Ich nehme an, daß bei einem regulären Abschalten von ioBroker - also iobroker stop oder Stop oder Restart von Windows - die aktuellen States gesichert werden.
Ja, so ist es.
-
@paul53 Klasse, herzlichen Dank! Dann passt das. der Win Rechner läuft ja sehr stabil. Und wieder mal Respekt und Hut ab!
-
@klassisch sagte:
Dann passt das.
Das heißt aber auch: Nach jedem js-controller Update an die Änderung in der Datei denken.
-
@paul53 Danke, habs notiert. Hoffentlich finde ich es dann auch wieder und denke dran. So häufig update ich den Controller nicht.
-
Kurzer Bericht. Nach dem Umstellen hat sich das Speichervolumen reduziert. Habe jetzt in ca. 24h laut SsdReady ca. 10GBWritten. Das klingt plausibel. ca. 5GB braucht schon Win10 idle.
Dann gibt das Programm noch "aligned to 4K Writes" mit ca. 15GB an.
Ganz verrückt aber: Sowohl nach CrystalDiskInfo als auch laut Intel Festplattentool (ich habe eine Intel PRO 2500) wurden im selben Zeitraum 153GBWritten verbraucht. Also das Zehnfache. Kann ich mit nicht vorstellen, recht unplausibel. Das sieht irgendwie nach einer verrutschten Zehnerpotenz aus. Seltsam. -
@klassisch Noch ein Nachtrag für die Interessierten:
Mit dem Programm AppReadWriteCounter kann man ein paar weitere Infos bekommen:
Innerhalb der letzten 13h schrieb "nodes.exe"ca. 1.6GB auf die Platte mit ca. 286 000 Zugriffen.
MsMpEn schrieb ca. 3.3GB
Der Rest ist jeweils eine Zehnerpotenz drunter.
Dennoch reden die beiden SMART orientierten Tools über 153GB in 24h.
Das kann ich nicht glauben, Faktor 10 weniger scheint realistisch. Andererseits ist das ein alte SSD der Intel Professional Serie, Das sollte das SMART Zeugs doch up to date sein. -
Hallo,
ich hänge mich mal hier mir rein.
Nachdem ich den Intervall auf 5 Minuten erhöht hatte, wurde wesentlich weniger geschrieben. Eine Änderung auf 10 Minuten brachte dann nicht wirklich weitere "Besserung". Somit habe ich mich auf die Suche gemacht und bin über die Wetter-Adapter gestoßen.
Die Objects.json wird bei mir jedesmal neu geschrieben, wenn openweather, dwd oder daswetter aktiv waren. Scheint, als ob die jedesmal an den Objekten / Datenpunkten was ändern, sodass die Änderung auf die SSD soll.
Das Anpassen des Schreibintervalls finde ich gut. Das sollte in den Einstellungen mit angeboten werden. So braucht man nicht in den Konfig-Dateien was ändern, wenn es mal wieder ein Update gab.
Und die Wetter-Adapter scheinen da noch einen Bug zu haben.
-
@peterfido sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Somit habe ich mich auf die Suche gemacht und bin über die Wetter-Adapter gestoßen.
Wie bzw. mit welchen Tool hast Du gesucht?
Die Objects.json wird bei mir jedesmal neu geschrieben, wenn openweather, dwd oder daswetter aktiv waren. Scheint, als ob die jedesmal an den Objekten / Datenpunkten was ändern, sodass die Änderung auf die SSD soll.
Interessant, ich habe selbst keinen Wetteadapter laufen.
Das Anpassen des Schreibintervalls finde ich gut. Das sollte in den Einstellungen mit angeboten werden. So braucht man nicht in den Konfig-Dateien was ändern, wenn es mal wieder ein Update gab.
Ja, das meine ich auch. Vor allem für die SD-Kartennutzer, auch wenn das wohl immer weniger werden.
Und die Wetter-Adapter scheinen da noch einen Bug zu haben.
Beides wäre ein einen issue auf github wert. Bist Du versierter github Nutzer?
-
-
Kann auch sein, dass es daran liegt, dass die Wetter-Adapter alle in der Schedule-Gruppe sind. Das heißt die Adapter laufen nur kurz und beenden sich dann wieder, statt einfach zu schlafen.
Getestet habe ich das "zu Fuß" anhand des Zeitstempels der Objects.json. Hat sich der geändert, habe ich ins Log geschaut, was zu der Zeit passiert ist.
github-Nutzer bin ich. Allerdings noch relativ "frisch". Ich sehe mir gerade den SourceCode vom Adapter "DasWetter" an. Besser wäre, wenn man die Aktualisierungsrate im Admin einstellen könnte und die Adapter durchlaufen.