Kategorien
Haustechnik

Raspberry Pi: SD Karte Geschwindigkeit testen

In diesem Beitrag erkläre ich euch, wie ihr mit einfachen Konsolenbefehlen über SSH auf einem Raspberry Pi einen Schreib- und Lesetest der Geschwindigkeit der SD Karte macht.

Verwendetes Material / Lizenzen

  • Raspberry Pi  (z.B. der Pi 4 4GB bei amazon.de als Komplettkit, ca. 95 EUR)
  • Pi geeignete microSD Karte, am besten mit 16GB oder mehr Speicher (z.B. Samsung PRO Endurance 64GB bei amazon.de, ca. 14 EUR)

So geht es

Als erstes verbindet ihr euch per SSH mit dem Raspberry Pi (eine Erklärung findet ihr z.B. im Installationsbeitrag zu openHAB von mir) und meldet euch dort an. Wenn auf dem Raspberry Dienste laufen, die viel Schreib- und/oder Leselast auf der SD Karte erzeugen, ist das der richtige Augenblick, diese zu stoppen, damit der Test nicht beeinflusst wird. Das geht meistens mit einem Kommando wie:

sudo systemctl stop dienstname

Test der Schreibgeschwindigkeit

Um nun den Test der Schreibgeschwindigkeit zu starten ist folgender Befehl zuständig. Dieser schreibt 1024 Blöcke mit je 500KB voller Nullen (also 500MB) in die Datei ~/test.tmp:

dd if=/dev/zero of=~/test.tmp bs=500K count=1024

Test der Lesegeschwindigkeit

Vor dem Test der Lesegeschwindigkeit muss einmal der Cache des Dateisystems geleert werden, sonst werden die Daten daraus gelesen und ihr erhaltet absurd schnelle Ergebnisse (bei mir waren es ca. 600MB/s). Zum säubern des Caches verwendet ihr:

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Hinweis: Auf einigen Internetseiten wird auch als Alternative genannt, den dd Befehl mit dem Parameter oflag=dsync zu ergänzen. Das hat bei meinen Tests auf dem aktuellen Raspberry OS nicht funktioniert.

Um nun den Test der Lesegeschwindigkeit zu starten ist folgender Befehl zuständig. Er liest die zuvor geschriebenen 500MB einfach ins Nirvana ein:

dd if=~/test.tmp of=/dev/null bs=500K count=1024

Aufräumen

Nach dem Test solltet ihr die entstandene temporäre Datei wieder löschen:

rm ~/test.tmp

Beurteilung

Ihr solltet nun die Ergebnisse ähnlich wie hier sehen:

In meinem Fall schreibt die SD Karte also sequentiell mit 26,6 MB/s und liest mit 21,0 MB/s. Wenn die Werte deutlich niedriger sind, ist die Karte entweder generell sehr langsam oder defekt. So lieferte bei mir eine Sandisk Ultra 32GB nach einem knappen Jahr plötzlich nur noch ca. 3MB/s lesend und schreibend und legte damit mein ganzes openHAB System lahm…

Es gibt noch ausgefeiltere Möglichkeiten zum Test, diese erfordern aber meist die Installation von zusätzlichen Tools. Z.B. dieses Skript von Jeff Geerling testet mit hdparm und iozone und liefert damit auch Werte für zufällige Lese- und Schreibzugriffe:

curl https://raw.githubusercontent.com/geerlingguy/raspberry-pi-dramble/master/setup/benchmarks/microsd-benchmarks.sh | sudo bash

Für einen schnellen Test reicht die „dd Methode“ aber locker aus.

Schlusswort

Ich freue mich über eure Kommentare, ob euch der Beitrag weitergeholfen hat. Schreibt auch gerne, wenn ihr Fragen habt oder doch etwas unklar geblieben ist. Oder wenn ihr aufbauend darauf spannende weitere Automatisierungs Projekte umsetzen konntet 🙂

Wenn diese Seite für dich hilfreich war und du dich bei mir bedanken möchtest, dann freue ich mich ganz außerordentlich darüber, wenn du für deinen nächsten Einkauf bei amazon.de über diesen Link gehst. Ich bekomme dann eine kleine Provision, für dich kostet es keinen Cent extra. Wenn du mir lieber direkt etwas zukommen lassen möchtest, dann kannst du das hier.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.