NEWS
RaspberryOS + ioBroker = SD Karten Killer
-
Ich bin unerfahrener Nutzer, hab mir aber hier alles durchgelesen.
Sehe ich das richtig, dass man nur:- Den Befehl:
sudo sed -i -e 's/defaults,noatime/defaults,noatime,commit=600/' /etc/fstab
ausführen muss.
-
Die SWAP-Datei egal ist, wenn man genug RAM hat und dieser sowieso die ganze Zeit mehr leer als voll ist.
-
Noch was mit Log2RAM machen sollte, oder ist das im Befehl unter 1. schon abgegolten und daher unwichtig?
-
@loverz said in RaspberryOS + ioBroker = SD Karten Killer:
Den Befehl:
Dieser Befehl stellt das commit Intervall des filesystem vom default (5 Sekunden) auf 600 Sekunden. Dadurch werden defacto alle "geplanten" Schreibaktionen defacto für (bis zu) 10 Minuten gesammelt (im RAM) und dann gemeinsam (flash schonend) geschrieben.
Die SWAP-Datei egal ist, wenn man genug RAM hat
Mit genügend RAM kann man SWAP dann eigentlich auch gleich deaktivieren, dann führt es sicher zu keinerlei Schreibaktionen auf der SD Karte
Noch was mit Log2RAM machen sollte, oder ist das im Befehl unter 1. schon abgegolten und daher unwichtig?
Der erste Befehl ändert nur indirekt was an den Logs. Diese werden dann nicht mehr alle 5 Sekunden in's FS gehammert sondern nur noch alle 10 Minuten.
Log2ram (je nach Einstellung) flusht das Log z.B. nur täglich und zusätzlich vor dem herunterfahren (so die armbian defaults).
-
@opensourcenomad danke für die ausführliche Erklärung.
Für die meisten macht Log2RAM dann vermutlich keinen Sinn.
Ich denke alle 10 Minuten ist ein guter Wert. Man könnte den je nach RAM Größe ja bestimmt auch auf 30 oder 60 Minuten erhöhen denke ich.Gibt es noch ein Befehl zur SWAP-Deaktivierung?
Und nochwas:
Gibt es einen Befehl, mit dem man sehen kann, wie hoch das aktuell eingestellte commit intervall ist? -
@loverz said in RaspberryOS + ioBroker = SD Karten Killer:
Für die meisten macht Log2RAM dann vermutlich keinen Sinn.
Das kommt ganz darauf an.
Ich denke alle 10 Minuten ist ein guter Wert.
Das ist wohl gemerkt "nur" das commit Intervall des filesystem selber. Spätestens/maximal nach 10 Minuten wird der Inhalt geschrieben. Allerdings kann auch jedes Programm einen "flush" beantragen und durchführen
bestimmt auch auf 30 oder 60 Minuten erhöhen
Korrekt, um so höher das Intervall um so mehr "Datenverlust" ist bei unkontrollierten Absturz möglich.
Gibt es noch ein Befehl zur SWAP-Deaktivierung?
Sowas wie
swapoff
?Gibt es einen Befehl, mit dem man sehen kann, wie hoch das aktuell eingestellte commit intervall ist?
Sollte im fstab sichtbar sein
-
@opensourcenomad wie rufe ich fstab auf?
Ich habe leider von Linux keine Ahnung.Ich gehe davon aus, dass iobroker nicht dauernd von selbst einen "flush" beantragt, sonst hat das Ganze ja nicht viel Sinn.
Swapoff geht auch nicht:
-
@loverz sagte in RaspberryOS + ioBroker = SD Karten Killer:
wie rufe ich fstab auf?
cat /etc/fstab
swapoff:
sudo swapoff -a
-
@thomas-braun danke,
fstab sieht so aus:
pi@ioBroker-RasPi4:~ $ cat /etc/fstab proc /proc proc defaults 0 0 PARTUUID=52e4cf4c-01 /boot vfat defaults 0 2 PARTUUID=52e4cf4c-02 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that pi@ioBroker-RasPi4:~ $
sehe da keine Zeit von 5 Sekunden o.Ä.
-
@loverz sagte in RaspberryOS + ioBroker = SD Karten Killer:
# a swapfile is not a swap partition, no line here
Schau hier mal vorbei:
https://www.elektronik-kompendium.de/sites/raspberry-pi/2002131.htm -
@thomas-braun sagte in RaspberryOS + ioBroker = SD Karten Killer:
swapoff:
sudo swapoff -a
Danke für den Link, der Befehl hier ist falsch. Der ist nur zum Swap leeren.
-
@opensourcenomad kannst du bitte noch kurz erklären, wie man das aktuelle commit intervall anzeigen kann?
-
@loverz said in RaspberryOS + ioBroker = SD Karten Killer:
ext4 defaults
das aktuelle commit intervall
Es wird das "default" von ext4 hergenommen und das sind 5 Sekunden
-
@loverz sagte in RaspberryOS + ioBroker = SD Karten Killer:
Danke für den Link, der Befehl hier ist falsch. Der ist nur zum Swap leeren.
Nein, der Befehl leert das swapfile und schaltet es dann temporär aus.
Indem man den Service disabled übersteht diese Änderung dann auch einen Reboot. -
Ich hatte auch mal große Probleme mit der Performance und festgestellt, dass das Swap File immer 60 bis 100% ausgelastet war.
Die Samsung SD hat es überstanden.Pi auf 8gb upgegraded und das SWAP File ist nun komplett leer.
Gleichzeitig auch auf eine SSD umgestiegen.
Kann ich das commit intervall einfach so nach einem iobroker stop unabhängig von einer installationsroutine ausführen?
sudo sed -i -e 's/defaults,noatime/defaults,noatime,commit=600/' /etc/fstab
-
@maxpd sagte in RaspberryOS + ioBroker = SD Karten Killer:
Kann ich das commit intervall einfach so nach einem iobroker stop unabhängig von einer installationsroutine ausführen?
Ja, das Dateisystem muss dann aber nochmal remounted werden -> Sauberer reboot am besten.
-
@thomas-braun gibts einen befehl dit commit häufigkeit zu prüfen, da es kein feedback nach der eingabe gibt
-
@maxpd sagte in RaspberryOS + ioBroker = SD Karten Killer:
kein feedback nach der eingabe gibt
Linux: Kein Feedback = Das Kommando wurde ausgeführt.
Hast du die Kiste jetzt neugestartet? Erst dann werden die neuen Einstellungen für das Dateisystem übernommen. -
@thomas-braun Ja,
pi@iobroker:~ $ iobroker stop pi@iobroker:~ $ sudo sed -i -e 's/defaults,noatime/defaults,noatime,commit=600/' /etc/fstab pi@iobroker:~ $ sudo reboot now
-
Dann ist die Option auch jetzt gesetzt.
-
Hab mir jetzt influxDB in Kombination mit Grafana auf meinen Raspberry 4 mit iobroker geholt, da ich meine Stromwerte loggen will.
Folgende EInstellungen:
zusätzlich das oben genannte commit-intervall von 600 Sekunden.
Aktuell schreibt er eher nur alle 600s (10 Minuten), da ich "nur" 100-150 Änderungen in dieser Zeit habe und die 200 vorne noch nicht greift.
Denkt ihr mein Setting schadet der SD Karte sehr auf Dauer?
Hab eine 128GB drin.Ich frage mich sowieso: Wieso schadet es der SD Karte mehr, wenn häufiger geschrieben wird, wenn doch die Anzahl der geschriebenen Datenblöcke am Ende gleich ist?
-
@loverz sagte in RaspberryOS + ioBroker = SD Karten Killer:
Ich frage mich sowieso: Wieso schadet es der SD Karte mehr, wenn häufiger geschrieben wird, wenn doch die Anzahl der geschriebenen Datenblöcke am Ende gleich ist?
Sagen wir mal so - und das sind reine Annahmen meinerseits! - Du unterstellst der Datenbank das Sie so auf die Platter schreibt wie Du Ihr Daten gibst ... keine Ahnung ob man das so annehmen kann Datenbanken optimieren auf die Dinge die Ihnen wichtig sind, nämlich Abfragegeschwindigkeit und generell Durchsatz und Datensicherheit ... Ich behaupte das Ihnen I/O ziemlich egal ist - bestenfalls ist "I/O Optimierung" ein untergeordnetes Ziel. Ich persönlich bin seeeehr skeptisch bei "echten" Datenbanken auf SD-Karten generell - egal ob mySQL oder InfluxDB oder Postgres oder sonstwas.
Aber ich kann auch komplett falsch liegen