NEWS
ioBroker: 25GB pro Tag wg states.json + states.json.bak
-
@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.
-
@peterfido sagte:
dass es daran liegt, dass die Wetter-Adapter alle in der Schedule-Gruppe sind.
Daran liegt es.
-
@paul53 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
@klassisch sagte:
wäre ein einen issue auf github wert.
Ich bin verwirrt. Denn ich Interpretiere das
Apollon77 moved this from Backlog to Done in Next Version (3.0.x/3.1) Elena/Francesca
so, daß ab JS-Controller 3.0 das feature schon drin sein sollte.
Mein Rechner sagt mir
Typ: js-controller Verfügbar: 3.1.6 Titel: JS controller Installiert: 3.1.6 OS: win32
Dann müßte das Feature doch schon eingebaut sein?
-
@peterfido sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
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.
Vielen Dank, mühselig, aber man kommt dennoch voran.
-
@peterfido das sieht man doch
alles was vorne keine Ampel hat ist per crontab einstellbar..
ok ausser die Zusatzklamotten für die VIS
-
@klassisch sagte:
Dann müßte das Feature doch schon eingebaut sein?
Müsste, aber
@paul53 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Ich hatte es erst mit der Config-Datei conf/iobroker-dist.json versucht, was allerdings nicht funktioniert hat.
-
@arteck
Ich hab´s ja gesehen Nur, warum werden dann bei jedem Start die Objekte neu geschrieben? Als der Javascript-Adapter die Objekte alle unter 0_userdatat.0 bei jedem Skript-Start neu initialisiert und die Werte dadurch gelöscht hatte, habe ich mir eine CreateObject selbst erstellt, welche vorher prüft, ob das Objekt schon existiert.Sowas sollte hier dann auch rein. Oder @apollon77 (ist er dafür zuständig?) berücksichtigt das in zukünftigen Versionen.
-
@paul53 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
@paul53 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Ich hatte es erst mit der Config-Datei conf/iobroker-dist.json versucht, was allerdings nicht funktioniert hat.
Danke. Ah, drin aber defekt. Wäre dann auch einen neuen github issue wert: Einstelloption funktioniert nicht.
-
@peterfido Woher soll denn der JS Adapter wissen ob das Javascript das Objekt geändert hat? Von daher kann er es nur so neu schreiben das es passt.
Ich verstehe noch nicht ganz wo das Problem liegt? Die meisten Adapter nutzen bereits "setObjectNotExists" und ja das objects.json ist vllt am größten wird aber eher selten wirklich geändert. Die states.json die den aktuellen State-Status enthält wird da viel öfter geschrieben.
Am Ende kann die Schreibfrequenz angepasst werden, unter dem Risiko das bei einem Crash die Werte veraltet sind.
Redis hilft da auch nicht, da auch her geschrieben wird - anders konfiguriert.
Das Problem besteht etwas mehr für SD-Karten User.
Ingo
-
@apollon77 sagte in ioBroker: 25GB pro Tag wg states.json + states.json.bak:
Redis hilft da auch nicht, da auch her geschrieben wird - anders konfiguriert.
na ja redis kann dir hier helfer wenn du es auf eine andere Maschien auslagerst
-
@apollon77
Moin,vielleicht vor dem Schreiben prüfen, ob da überhaupt was anderes steht. Aktuell sieht es so aus, dass die Objekte die bereits vorhandenen Namen bekommen und dann die Datei geschrieben wird. Meine objects.json ist mit ihren 10 MB etwa fünf Mal größer als die Staates.json. Die TBW der SSD werden so schneller aufgebraucht. Okay, die Samsung 860 EVO 500 hält bissel was aus, trotzdem würde ich gern unnötige Schreibvorgänge reduzieren.
Einen Wetteradapter hatte ich im 5 Minutentakt, die anderen beiden im 15 Minutentakt. Also wurde 20 Mal die Stunde die objects.json geschrieben. Jetzt habe ich zwei deaktiviert und nehme alle 30 Minuten nur noch DasWetter. Die anderen waren für spezielle Dinge wie die Warnungen und paar tiefere Details.
Redis hatte ich kurz aktiviert, da ging mir der RAM-Verbrauch zu hoch. Vielleicht aktiviere ich das später wieder, wenn mehr RAM vorhanden ist.