NEWS
How to lower disk writes (for extending life of an sd card)
-
@apollon77 sagte:
this will be likely hard when you do not only use device values, but also logical values.
A reboot / killing of ioBroker immediately writes the states from RAM to the file. Only in case of a system crash (power failure) such a long time is problematic.
-
@paul53 ... or a process crash (yes there is come code that tries to write it also when crashing) ... but (e.g. a SIGTERM because of OOM might also not write values).
It is all about "knowing what one is doing"
-
@paul53 , @apollon77
Thanks for your hints, guys. For now I'm just handling Ecovacs Deebot vacuuming robot (and Daikin aircon soon, probably) over MQTT with no logic within ioBroker. So I hope I don't risk any house disaster with that setting@paul53, I've created an issue, thanks.
-
just as suggestion, to avoid load read/write loads on storage and move the to Memory isn't Redis providing more efficient state handling here ?
-
I thought about it but AFAIK Redis also needs to write to disk / sd card. I have relatively small number of states so I believe creating yet another docker instance for Redis would be kind of overkill in my case.
-
@Tomasz-Nowak
I am using Redis successfully for several months. I have installed it on the same system (Debian) on which ioBroker is installed - but no Raspberry experience (I am using a Zotac barebone with Proxmox), though.
See: https://github.com/ioBroker/ioBroker.js-controller#state-and-objects-databases-and-files
Also, see: https://redis.io/topics/persistence
You may want to look into it again, but not sure how the performance is gonna be on a Raspberry. -
@Mic
I've read that before. They say good for many objects such has 10000 for performance reasons. I have like 50 objects
And I don't want make it more complex (you don't install another services in docker instance, you need another docker) -
guys wait ...., don't ix performance and io topics please
we are discussing write access to storage, Redis works in memory so less write on disk/card was my hypothese
-
@Dutchman sagte:
Redis works in memory so less write on disk/card
Per default Redis writes every 5 minutes to disk/card.
-
@paul53 sagte in How to lower disk writes (for extending life of an sd card):
@Dutchman sagte:
Redis works in memory so less write on disk/card
Per default Redis writes every 5 minutes to disk/card.
Better than every 30 seconds
-
@Dutchman sagte in How to lower disk writes (for extending life of an sd card):
Better than every 30 seconds
Exactly, and the default value can certainly be increased to whatever is needed. I would give Redis a try.
Also,
@Tomasz-Nowak sagte in How to lower disk writes (for extending life of an sd card):They say good for many objects such has 10000 for performance reasons
I would assume this statement in the documentation was just made for the ease of use of ioBroker in general: Without like Redis, typically ioBroker's performance is good if you have way less than 10000+ objects. You are having a different use case (limited disc r/w per period). Not sure how the performance (like CPU and memory usage) of Redis is on a Raspberry, but I guess pretty low.