uSD Test am Raspberry Pi
Samstag, 2019-02-16 20:46, Eintrag von Wolfgang Rudolph
Kategorien: -
Mr. Rossi 2019-01-09
1. Einfuehrung
Sinn und Zweck: Test verschiedener uSD (microSD) Speicherkarten bezueglich Geschwindigkeit und Haltbarkeit auf einem Raspberry Pi 3.
2. Fazit, Empfehlungen, Anmerkungen
Uneingeschraenkt ist aus den getesteten Speichermedien die Sandisk Extreme 32GB A1 (SDSQXAF-032G-GN6MA) empfehlenswert (Eur 6.8).
Falls 8GB ausreichend sind und die Sandisk nicht zu bekommen ist, ist die Transcend Ultimate 600x 8GB (TS8GUSDHC10U1) empfehlenswert.
Wegen des inzwischen recht kleinen Preises sind noch empfehlenswert:
- Transcend Ultimate 600x 18GB TS16GUSDU1 Eur 4.6 (ungetestet, offenbar 16BG Version der TS8GUSDHC10U1 daher evtl. vergleichbar)
- Adata Premier 16GB AUSDH16GUICL10-R Eur 4.9 (Haltbarkeit ungetestet)
2.1 Allgmeine Tipps
Beim Kauf unbedingt auf die EXAKTE Typennummer achten
- Performance zusaetzlich einzeln ueberpruefen z.B. mit iozone
- Generelle Empfehlung: "A1" oder "A2" Speichermedien verwenden
- Billigmarken oder gar China-No-Name Produkte meiden
- Dubiose Quellen meiden (oftmals Fake-Medien)
- Varianten wie "Pro" oder aehnliches meiden (meist nur teurer)
- F2FS verwenden www.kernel.org/doc/Documentation/filesystems/f2fs.txt
3. Geschwindigkeitstest
Die sequentielle lese- und Schreibgeschwindigkeit ist fuer die embedded Anwendung, z.B. auf einem Raspberry Pi, ohne grosse Bedeutung.
Wichtig ist die Performance bei zufaelligem Zugriff bei kleineren Blockgroessen von 1...16 kiByte, da dies das Hauptzugriffsmuster darstellt. Ungluecklicherweise sind uSD Karten in aller Regel auf sequentielles lesen und schreiben optimiert, vorzugsweise auf dem FAT Dateisystem, fuer Fotoapparaten und dergleichen.
Hinweis: FSF2 ist aufgrund der Log-Struktur guenstig fuer die Schreibgeschwindigkeit (siehe Ergebnisse flash-bench) wie auch fuer die Sektorbelastung.
3.1 Testumgebung
- Raspberry Pi 3 mit Raspbian Lite
- EurEx = Preis in Euro exkl. MwSt. pro Stueck (ca. 2018-12)
- Geschwindigkeit in MiByte/s
- R=read W=write RND=random SEQ=sequentiell
- Blocktest mit iozone 4.34:
wget http://www.iozone.org/src/current/iozone3_434.tar
sudo ./iozone -e -I -a -s 100M -r 4k -i 0 -i 1 -i 2
- Filesystemtest mit flashbench 2015-02-24:
git clone https://github.com/hglm/flash-bench.git
sudo ./flash-bench
- f2fs siehe www.kernel.org/doc/Documentation/filesystems/f2fs.txt
3.2 Testergebnisse Geschwindigkeit
iozone Raspi3 uSD | Typennummer | EurEx| RRND | WRND
---------------------------+--------------------+------+------+------
Sandisk Extreme 32GB A1 | SDSQXAF-032G-GN6MA | 6.8 | 8.1 | 3.8
Samsung Evo+ 32GB (Auslauf)| MB-MC32DA | 7.9 | 8.1 | 2.9
Samsung Evo UHS-I 16GB | MB-MP16D | 12.5 | 5.5 | 1.2
Adata Premier 16GB | AUSDH16GUICL10-R | 4.9 | 6.8 | 1.1
Transcend Ult. U3 V30 | TS16GUSDU3M | 10.7 | 5.4 | 0.9
Verbatim Pro U3 16GB | 47040 | 10.7 | 7.1 | 0.8
Transcend Ult. 600x 8GB | TS8GUSDHC10U1 | 4.6 | 6.5 | 0.8
Samsung Evo Plus 32GB | MB-MC32GA | 5.8 | 4.5 | 0.8
Samsung Evo UHS-I 32GB | MB-MP32DA | 13.6 | 4.2 | 0.7
Sandisk Ultra 32GB | SDSQUAR-032G-GN6MA | 6.5 | 5.7 | 0.6
xlyne SDHC 8GB | 7408000 | 5.7 | 5.4 | 0.4
Toshiba Exceria M302-EA 32G| THN-M302R0320EA | 7.5 | 5.9 | 0.2
Toshiba Exceria M302-EA 16G| THN-M302R0160EA | 8.3 | 5.8 | 0.2
flashbench Raspi3 f2fs | Typennummer | EurEx| RRND | WRND
---------------------------+--------------------+------+------+------
Sandisk Extreme 32GB A1 | SDSQXAF-032G-GN6MA | 6.8 | 9.0 | 19.0
Transcend Ult. 600x 8GB | TS8GUSDHC10U1 | 5.6 | 5.7 | 13.5
Adata Premier 8GB | AUSDH8GUICL10 | 7.5 | 6.0 | 8.7
xlyne SDHC 8GB | 7408000 | 5.4 | 4.4 | 8.0
flashbench Raspi3 ext4 | Typennummer | EurEx| RRND | WRND
---------------------------+--------------------+------+------+------
Sandisk Extreme 32GB A1 | SDSQXAF-032G-GN6MA | 6.8 | 9.3 | 6.8
Samsung Evo+ 32GB (Auslauf)| MB-MC32DA | 7.9 | 6.2 | 3.6
Transcend Ult. 600x 8GB | TS8GUSDHC10U1 | 5.6 | 5.9 | 1.4
Adata Premier 16GB | AUSDH16GUICL10-R | 4.9 | 5.6 | 1.5
Sandisk Ultra 32GB | SDSQUAR-032G-GN6MA | 6.5 | 4.9 | 1.1
xlyne 8GB | 7408000 | 5.7 | 4.4 | 1.4
Samsung Evo Plus 32GB | MB-MC32GA | 5.8 | 4.0 | 1.2
4. Haltbarkeitstest
Prinzip: Schreiben von 1 MiByte Daten abwechselnd 0xAA und 0x55 auf ein und dieselbe Datei inkl. zuruecklesen und Pruefung. Der Test wird solange durchgefuehrt, bis die uSD ausfaellt.
4.1 Testumgebung
- Raspberry Pi 3 mit Raspbian Lite
- Filesystem F2FS
- Preis in Euro exkl. MwSt. pro Stueck ("EurEx")
- WrTB = Geschriebene Datenmenge in TiByte
- Ovw = Ueberschreibfaktor bezogen auf das GANZE Medium bis uSD tot
4.2 Pseudocode
- open(O_CREAT|O_TRUNC|O_RDWR|O_SYNC|O_DIRECT)
- Schleife:
lseek(0, Posix.SEEK_SET)
write(0xAA, 1024*1024)
fsync()
lseek(0, Posix.SEEK_SET)
read(1024*1024)
compare data, exit on fail
lseek(0, Posix.SEEK_SET)
write(0x55, 1024*1024)
fsync()
lseek(0, Posix.SEEK_SET)
read(1024*1024)
compare data, exit on fail
4.3 Testergebnisse Haltbarkeit
Haltbarkeitstest f2fs | Typennummer | EurEx| WrTB | Ovw
-------------------------+--------------------+------+--------+-----
Sandisk Extreme 32GB A1 | SDSQXAF-032G-GN6MA | 6.8 | 312.50 |10000 *
Transcend Ult. 600x 8GB | TS8GUSDHC10U1 | 5.6 | 24.00 | 3072
xlyne 8GB | 7408000 | 5.7 | 4.00 | 500
* Hinweis: Sandisk Extreme 32GB A1 per 2019-01-09 noch immer NICHT tot!
5. Changelog
Hinweis: Ausgehend von Version 2018-12-25
2018-01-09
- Preis TS8GUSDHC10U1 aktualisiert: Eur 5.6 --> 4.6
- Preis TS16GUSDU3M aktualisiert: Eur 9.3 --> 10.7
- 2. Fazit Empfehlung richtiggestellt: TS16GUSDU3M --> TS8GUSDHC10U1
- 2. Fazit Empfehlung hinzu fuer TS16GUSDU1
- 4.3 Update Overwrite Counter und Hinweis