NEWS
RaspberryOS + ioBroker = SD Karten Killer
-
@wendy2702 said in RaspberryOS + ioBroker = SD Karten Killer:
Ich vergleiche mit dem was man hier so liest bezüglich des Sterbens der SD Karten.
Also rein "gefühlt" oder wie soll man das verstehen? "Absolute" Zahlen für irgendwelche seriösen Vergleiche sind mir hier noch nirgends untergekommen
Mein Vergleichssetup besteht aus zwei Iobroker PI3 Installationen
Mit verschiedenen commit Intervall? Das wäre tatsächlich spannend!
Ob ich das "tool" mal teste muss ich mal schauen, nicht das nachher noch was kaputt geht
Da musst du keine Angst haben, das tool arbeitet nur lesend.
Allerdings könnte dich das Ergebnis natürlich trotzdem verärgern, wenn du siehst das du nur halbvolle pages beschreibst und dein Kärtchen auch ohne Probleme die doppelte Lebenszeit haben könnte!
-
@opensourcenomad said in RaspberryOS + ioBroker = SD Karten Killer:
Mit verschiedenen commit Intervall? Das wäre tatsächlich spannend!
Hier hat das jemand mit einem raspberry pi zero 2 gemacht:
If you love your SD card then Raspberry Pi OS defaults are not for you: swap on SD card, default ext4 commit interval and logging to card.
root@raspberrypi:~# armbianmonitor -d mmcblk0p2 Sun Nov 14 14:43:14 GMT 2021 2/40 pages written after 5 sec Sun Nov 14 14:43:24 GMT 2021 2/40 pages written after 5 sec Sun Nov 14 14:43:25 GMT 2021 8/36 pages written after 1 sec Sun Nov 14 14:43:36 GMT 2021 2/40 pages written after 7 sec Sun Nov 14 14:43:41 GMT 2021 1/4 pages written after 1 sec Sun Nov 14 14:43:45 GMT 2021 2/60 pages written after 4 sec Sun Nov 14 14:43:55 GMT 2021 2/44 pages written after 5 sec Sun Nov 14 14:44:06 GMT 2021 2/40 pages written after 6 sec
Every few seconds a few bytes are written to SD card. This write pattern results in high Write Amplification and the SD card will die way earlier than necessary.
Und hier mit Optimierung:
root@raspberrypi:/home/pi# date Sun 14 Nov 15:09:28 GMT 2021 root@raspberrypi:/home/pi# armbianmonitor -d mmcblk0p2 Sun Nov 14 15:15:48 GMT 2021 2/196 pages written after 378 sec Sun Nov 14 15:16:18 GMT 2021 33/152 pages written after 30 sec Sun Nov 14 15:17:01 GMT 2021 1/60 pages written after 43 sec Sun Nov 14 15:20:47 GMT 2021 1/12 pages written after 226 sec Sun Nov 14 15:21:03 GMT 2021 2/16 pages written after 16 sec Sun Nov 14 15:21:04 GMT 2021 2/8 pages written after 1 sec Sun Nov 14 15:21:10 GMT 2021 4/36 pages written after 6 sec Sun Nov 14 15:21:15 GMT 2021 3/20 pages written after 5 sec ^C root@raspberrypi:/home/pi# date Sun 14 Nov 15:21:35 GMT 2021
Before: 8 times within 60 seconds a few bytes were written to the card, now it took 12 minutes for 8 write attempts using larger data chunks. Write Amplification significantly decreased.
-
@opensourcenomad sagte in RaspberryOS + ioBroker = SD Karten Killer:
Also rein "gefühlt" oder wie soll man das verstehen?
Ja klar "gefühlt". Wie auch anders, sonst müsste ich ja ne Rechnung der SD Karte haben und genau wissen wann ich installiert habe.
Auch müsste ich genau wissen wie lange die anderen User hier Ihre Karten im Einsatz haben/hatten.
-
Fundstücke
Get a good card, a good power supply, and don’t let others’ negative experiences, real or rumored, get you down!
Quelle: https://hackaday.com/2022/03/09/raspberry-pi-and-the-story-of-sd-card-corruption/
-
@smarthome2020 said in [Anleitung] Selbstbau Wemos D1 mini und Helligkeitssensor BH1750:
Bei dem Sensor passiert im log über Minuten nichts , während bei einem anderen Sensor im Log neue Einträge hinzu kommen.
schalt mal die logger component auf
verbose
-
@thomas-braun said in RaspberryOS + ioBroker = SD Karten Killer:
and don’t let others’ negative experiences, real or rumored, get you down!
Oder:
"and don't repeat the failures of others for a quick Start!"
Die Kommentare vom Artikel empfehlen übrigens noch log2ram. Für Installationen auf SD Karten natürlich auch Pflicht!
-
@opensourcenomad sagte in RaspberryOS + ioBroker = SD Karten Killer:
Die Kommentare vom Artikel empfehlen übrigens noch log2ram. Für Installationen auf SD Karten natürlich auch Pflicht!
Wie kann man dann post mortem anhand von Logs Absturzursachen ermitteln? Sollten die nicht wenigstens halbwegs regelmäßig doch gespeichert werden?
-
@alcalzone said in RaspberryOS + ioBroker = SD Karten Killer:
Sollten die nicht wenigstens halbwegs regelmäßig doch gespeichert werden?
Also Armbian macht das so:
/var/log is mounted as compressed device (zram, lzo), log2ram service saves logs to disk daily and on shutdown
Source: https://docs.armbian.com/#performance-tweaksDa der Pi nur 5V braucht ist eine unterbrechungsfreie Stromversorgung natürlich ein Kinderspiel. Mehr als eine Powerbank welche gleichzeitig ge- und entladen werden kann (und natürlich genügend power liefert) braucht man nicht. Oft sind das sogar die ollen Werbegeschenke im 18650 Stil dafür geeignet
Rein rechnerisch sollte selbst eine kleine power bank mit 1000mAh die Himbeere durch jeden Stromausfall in DE bringen, statisch gesehen sind die Versorgungsunterbrechungen in den meisten Bundesländern weniger als 10 Minuten im Jahr.
Wie kann man dann post mortem anhand von Logs Absturzursachen ermitteln?
Ich bezweifle übrigens das in einem "normalen" (nicht auf SD Karten Lebenszeit optimierten) setup wo das log jede 5 Sekunden geflusht wird irgendetwas sinnvolles im Log zu finden ist wenn die Kiste unkontrolliert abschmiert. Oft ist ja gleich noch das Filesystem korrupt....
-
Sehr interessantes Thema ... ich frage mich aber ehrlich warum RaspberryOS da nicht von sich aus was gegen tut weil die Raspi Systeme werden ja "für alles und nichts" genutzt und an sich immer mit SD Karte ...
-
@apollon77 said in RaspberryOS + ioBroker = SD Karten Killer:
RaspberryOS da nicht von sich aus was gegen tut
Sehr gute Frage. Aber grundsätzlich ist Raspberry OS in der Vergangenheit ja auch schon mit anderen fragwürdigen Entscheidungen negativ aufgefallen (z.B. MS Telemetrie ungefragt ausgerollt auf allen installierten Systemen). Als ob das im auf dem Himbeeren vorinstallierte ThreadX "rootkit" von MS nicht schon genug wäre
Ich selber benutze das OS von der Raspberry Pi Trading Ltd nicht, gibt ja genügend seriöse alternativen. Wenn ich mich recht entsinne läuft Debian (wahrscheinlich ebenfalls mit default ext 4 commit Intervall von 5 Sekunden!) auf allen Himbeeren und Armbian hat für den Pi 4 eine
betastable mit allen Optimierungen die ein SBC so benötigt. Letzteres is natürlich die erste Wahl wenn man das Rad nicht neu erfinden will -
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?