Eiko Wagenknecht
Softwareentwickler, Freiberufler & Gründer

Raspberry Pi: SD-Karte Geschwindigkeit testen

Eiko Wagenknecht

In diesem Beitrag erkläre ich, wie man mit einfachen Konsolenbefehlen über SSH auf einem Raspberry Pi einen Schreib- und Lesetest der Geschwindigkeit der SD-Karte durchführt. Das kann besonders nützlich sein, um festzustellen, ob die Leistung einer SD-Karte nachgelassen hat oder ob eine neue Karte den eigenen Anforderungen entspricht.

Inhaltsverzeichnis

Verwendetes Material

So geht es

Als erstes verbindet ihr euch per SSH mit dem Raspberry Pi (eine Erklärung findet ihr z.B. in meinem Installationsbeitrag zu openHAB) 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.

Keine Kommentare? Kein Problem.

Dieser Blog unterstützt keine Kommentare, aber deine Gedanken und Fragen sind immer willkommen. Du erreichst mich mich über die Kontaktdaten im Footer unten.

Unterstützung

Wenn diese Seite für dich hilfreich war und du dich bei mir bedanken möchtest, kannst du bei deinem nächsten Einkauf bei amazon.de über diesen Link gehen. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Ich bekomme eine kleine Provision, für dich kostet es keinen Cent extra. Du kannst mich auch hier bei GitHub sponsoren.