/dev/blog/ID10T

Raspberry Pi: SD-Karten Tests

• Hardware and Linux • Comments
Advertisement

Update 17.08.2011:
Für Leute, die es eilig haben hier die beiden besten Karten: Transcend SDHC 16GB Class 6* und SanDisk Class 10 Ultra SDHC 8GB*.

Um eine gute Karte für meinen Raspberry Pi zu finden, habe ich mir bisher schon etwas Mühe gemacht. Denn nur weil Class 10 auf der Karte drauf steht, heißt das noch lange nicht, dass sie für die Zugriffe, die ein Betriebssystem braucht, optimiert ist. Wen das genauer interessiert, dem empfehle ich die Studie dieses Threads im Raspberry Pi Forums oder dieses Threads im XDA-Developers Forum.
Also habe ich mir zum Testen ein eigenes kleines Skript geschrieben, welches auf dem Raspberry Pi ausgeführt wird und sowohl die Schreibgeschwindigkeit von /dev/null als auch von /dev/random misst. Die Ergebnisse sind untereinander vergleichbar, nicht jedoch mit anderen Tests. Alle Tests wurden mit dem "alten" Debian Wheezy Image ausgeführt, welches noch nicht so gut optimiert ist.
Das Skript sieht so aus:

#!/bin/bash
#
# SD Performance Skript for
# Raspberry Pi
# Made by m3adow
#

sync
mkdir sdperf
echo -e "\n=== Testing /dev/zero Performance ==="
TZ="$(date +%s%N)"
time ( for item in `seq 1 1000`; do dd if=/dev/zero of=sdperf/zerotest.$item bs=16k count=10 >& /dev/null; done;)
TZ="$(($(date +%s%N) -TZ))"

rm -rf sdperf/
mkdir sdperf/

echo -e "\n=== Testing /dev/urandom Performance ==="
TR="$(date +%s%N)"
time (for item in `seq 1 1000`; do dd if=/dev/urandom of=sdperf/randtest.$item bs=16k count=10 >& /dev/null; done)
TR="$(($(date +%s%N) -TR))"
TRS="$((TR/1000000000))"

rm -rf sdperf/

echo -e "\n $TZ ns"
echo -e "\n==== Summary ====\n"
echo -e "\n Sequential Write (MB/s): \c"
echo -n $TZ  |awk '{OFMT="%.2f";print 160000000000/$0}'
echo -e "\n Random Write (MB/s): \c"
echo -n $TR  |awk '{OFMT="%.2f";print 160000000000/$0}'
sync

Im Endeffekt macht es nichts anderes, als 1000 Mal 10 Blöcke mit jeweils 16k Blocksize in ein Verzeichnis zu schreiben, die Zeit zu stoppen und die Geschwindigkeit auszurechnen. Nach den Tests löscht es die entsprechenden Dateien (bzw. den Ordner) wieder.

Da es sicherlich mehr Leute gibt, die eine schnelle SD-Karte für ihren Raspberry Pi haben wollen, werde ich hier meine Ergebnisse posten, bis ich eine Karte finde, die mir zusagt. Ich mache jeweils drei Durchgänge, um eventuelle Ausreißer zu erkennen. Ich gebe jeweils die Geschwindigkeiten der /dev/zero Schreibdurchgänge und darunter die Geschwindigkeiten der drei /dev/urandom Schreibdurchgänge an.
Hinweis: Ich hatte vor Beginn meiner Tests noch eine Samsung MB-SPAGA/EU Class 10 16GB* bestellt, doch diese war mir zu langsam.

Platinum 16 GB Class 6 SDHC*

/dev/zero (1./2./3. Run) [MB/s]: 0.97/1.37/1.09
/dev/urandom (1./2./3. Run) [MB/s]: 0.5/0.51/0.48
Fazit: Zu langsam
Transcend SDHC 8GB Class 4*
/dev/zero (1./2./3. Run) [MB/s]: 1.08/1.16/1.35
/dev/urandom (1./2./3. Run) [MB/s]: 0.51/0.52/0.51
Fazit: Zu langsam
SanDisk Extreme III 2GB Class 6
/dev/zero (1./2./3. Run) [MB/s]: 4.78/4.58/4.64
/dev/urandom (1./2./3. Run) [MB/s]: 0.78/0.79/0.78
Fazit: Meine alte Karte, gute Geschwindigkeit

Update 06.08.2012:

SanDisk Ultra SDHC 8GB Class 4*

/dev/zero (1./2./3. Run) [MB/s]: 1.44/1.50/1.7
/dev/urandom (1./2./3. Run) [MB/s]: 0.57/0.57/0.6
Anmerkung: Ich habe diese Karte bestellt, aber eine SanDisk Ultra 8GB Class 6 Karte bekommen. Diese habe ich getestet.
Fazit: Zu langsam
SanDisk Ultra SDHC 16GB Class 4*
/dev/zero (1./2./3. Run) [MB/s]: 3.56/3.47/3.57
/dev/urandom (1./2./3. Run) [MB/s]: 0.73/0.73/0.74
Anmerkung: Ich habe diese Karte bestellt, aber eine SanDisk Ultra 16GB Class 10 Karte bekommen. Diese habe ich getestet.
Fazit: Zu langsam

Update 17.08.2012:

Kingston Class 10 SDHC 8GB*
/dev/zero (1./2./3. Run) [MB/s]: 1.80/1.68/1.62
/dev/urandom (1./2./3. Run) [MB/s]: 0.57/0.60/0.56
Fazit: Zu langsam
Kingston SDHC Class 4 16 GB*
/dev/zero (1./2./3. Run) [MB/s]: 0.75/1.02/1.07
/dev/urandom (1./2./3. Run) [MB/s]: 0.43/0.41/0.38
Fazit: Zu langsam
SanDisk Class 10 Ultra SDHC 8GB*
/dev/zero (1./2./3. Run) [MB/s]: 3.29/3.42/3.25
/dev/urandom (1./2./3. Run) [MB/s]: 0.75/0.73/0.73
Fazit: Gute Geschwindigkeit, beste 8GB-Karte
Lexar 8GB Class 6*
/dev/zero (1./2./3. Run) [MB/s]: 1.06/0.99/1.07
/dev/urandom (1./2./3. Run) [MB/s]: 0.47/0.49/0.45
Fazit: Zu langsam
Lexar SDHC 4GB Class 6*
/dev/zero (1./2./3. Run) [MB/s]: 1.33/1.77/1.38
/dev/urandom (1./2./3. Run) [MB/s]: 0.52/0.54/0.53
Fazit: Zu langsam
Transcend SDHC 16GB Class 6*
/dev/zero (1./2./3. Run) [MB/s]: 3.93/3.43/3.25
/dev/urandom (1./2./3. Run) [MB/s]: 0.75/0.73/0.73
Fazit: Gute Geschwindigkeit, beste 16GB-Karte

Transcend SDHC 8GB Class 6*
/dev/zero (1./2./3. Run) [MB/s]: 1.68/2.13/1.61
/dev/urandom (1./2./3. Run) [MB/s]: 0.59/0.55/0.57
Fazit: Zu langsam

Falls Ihr Erfahrungen mit SD-Karten gemacht habt, teilt sie hier gerne, ich habe mir die Transcend 16 GB behalten.

*=Affiliatelink

Advertisement
More posts
comments powered by isso

Advertisement