Raspberry Pi 4 e microSD: benchmarks e test di velocità (prova comparativa)

Condividi questo articolo:


In qualità di sviluppatore part-time e a tempo pieno, sono rimasto affascinato dai single board computer (SBC) sin da quando il primo Raspberry Pi è stato introdotto quasi dieci anni fa. Ho posseduto e utilizzato ogni generazione di Raspberry Pi, oltre alla maggior parte dei concorrenti più popolari. Potete cercare sul mio sito tonnellate di articoli su queste esperienze.

Una cosa che è quasi universalmente vera (almeno a partire dal 2019) è che il più comune dispositivo di avvio del sistema è una scheda microSD. Le schede SD in generale hanno caratteristiche prestazionali che impallidiscono in confronto ai dispositivi più veloci, come gli SSD NVMe, eMMC e XQD o CFexpress.

Inoltre, le metriche di performance utilizzate nel marketing delle microSD sono di solito rivolte solo al mercato principale di questi minuscoli chip di memoria: coloro che registrano video e fotografie su di essi, e si preoccupano sempre e solo delle performance di lettura/scrittura dei file.

Per il calcolo generale, che è ciò che gli SBC come il Raspberry Pi fanno per le prestazioni di I/O è molto più importante. Ed è qui che la maggior parte delle schede microSD, anche le più costose, sono incredibilmente scarse.

I benchmark : Raspberry Pi 4 e microSD

Se c’è una cosa che odio, sono i post del blog che richiedono di leggere un romanzo prima di arrivare alla carne. Quindi, prima di andare oltre, ecco i benchmark del 2020, eseguiti su un nuovissimo Raspberry Pi 4 modello B (1 GB di RAM), utilizzando l’alimentatore ufficiale Raspberry Pi USB-C:

 

Come per gli anni precedenti, e ancora una volta per andare dritti al punto, ecco le mie raccomandazioni per una scheda microSD per il vostro Pi:

Samsung Evo+ – $8 su Amazon
SanDisk Extreme – $10 su Amazon

L’Evo+ è una delle schede microSD più economiche (meno di dieci dollari su Amazon al momento), e ha le migliori o quasi migliori prestazioni per ogni metrica. Ed è quasi il doppio della migliore prestazione del concorrente al secondo posto, il Samsung Pro+ (che costa molto di più).

Alcune carte costano molto di più, ma offrono meno della metà delle prestazioni di scrittura. Si noti che queste schede ‘super veloci’ sono spesso più veloci quando si scrivono file di grandi dimensioni o dati in streaming da e verso le schede… ma qualunque sia l’ottimizzazione che fanno per queste prestazioni sembra avere un impatto negativo sulle prestazioni di scrittura casuale.

Potete trovare tutti i dati grezzi e la metodologia di benchmark (nonché un link allo script utilizzato per eseguire il benchmark sul Pi) sul sito ufficiale di Raspberry Pi Potete anche eseguire il benchmark sul vostro Pi utilizzando il seguente comando:

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

Perché le schede microSD sono così lente a 4k I/O?

All’inizio del post, ho accennato al fatto che le schede microSD sono spesso commercializzate in base alla loro massima produttività. Le designazioni “C10” o “U3” rappresentano tipicamente una classe di velocità come “10 MB/sec” o “30 MB/sec”, rispettivamente. Ma questo avviene con grandi blocchi di dati video, che sono abbastanza facili da ottimizzare per i controller flash prodotti in serie a basso costo.

Ma quando si guarda a 4K I/O casuali (che sono blocchi di dati di 4 kilobyte, scritti su segmenti casuali della flash drive), le prestazioni sono notevolmente ridotte. Invece di vedere i “95 MB/sec” pubblicizzati sulla parte anteriore della scheda microSD della Sony, per esempio, ho trovato una velocità di scrittura di 0,66 MB/s nella scrittura di blocchi 4K casuali.

Non biasimo i produttori, perché probabilmente il 90-95% di coloro che acquistano queste schede non le usano come volume di avvio principale del sistema su un computer Linux, come facciamo io e te 🙂

Ma sarebbe bello vedere le metriche di I/O casuali in qualche modo riflesse nelle schede tecniche delle flash card. Spesso è impossibile ottenere quei dati, ed è per questo che faccio questi post del blog ormai annuali!

Miglioramenti delle prestazioni del Pi 4 microSD Raspberry Pi 4

Sono stato molto entusiasta di vedere i miglioramenti di I/O del Raspberry Pi 4, che ritenevo fossero attesi da tempo. Per alcuni anni, concorrenti come Asus TinkerBoard e OrangePi hanno avuto una larghezza di banda più dedicata per supportare I/O più veloci sul bus di rete, porte USB e il lettore di schede microSD. Il Pi, per anni, ha avuto una quantità molto limitata di larghezza di banda, condivisa tra tutti i suddetti.

Il Pi 4 fa molto meglio con tutte le carte che ho testato. Mentre le prestazioni di lettura/scrittura casuale non sono molto migliori (questo è dovuto alla scheda molto più del Pi), il massimo throughput con file di grandi dimensioni e dati in streaming è migliorato notevolmente:

 

Il Pi 4 legge e scrive i dati su tutte le schede che ho testato più velocemente del 3 B+ anche quando la scheda microSD 3 B+ era overcloccata!

USB 3.0 su Rasbperry Pi 4

Speravo, ma non mi aspettavo, l’USB 3.0 sul Pi 4, quindi sono stato molto felice di vederlo fare il taglio. L’USB 3.0 offre un throughput massimo teorico di 625 MB/sec; il Pi non può arrivare a tanto, ma può sostenere oltre 300 MB/sec di banda in lettura/scrittura.

Attualmente, il Pi 4 non è in grado di avviare direttamente un drive esterno USB 3.0 – al contrario, si può tipo hackerare e ottenere la partizione di avvio sulla scheda microSD, con il filesystem di root Linux che gira su un drive esterno. Una volta che sarà possibile avviare il sistema senza una scheda microSD (questo dovrebbe essere possibile dopo un futuro aggiornamento del firmware), un SSD esterno offrirà un incredibile incremento di velocità, simile al passaggio da un HDD in rotazione a un SSD.

Ho fatto alcuni test con un SSD Samsung 860 Evo SSD da 512 GB che avevo in giro, con un adattatore da USB 3.0 a SATA, ed ecco i risultati:

Una cosa che ho notato all’inizio è che i miei test con la chiavetta USB esterna erano assolutamente incoerenti. E su un Pi, ho imparato che di solito significa una cosa sola: qualcosa si sta scaldando molto, e sta accelerando la velocità. Ho tirato fuori la mia telecamera Flir, e di sicuro il chip del controller VLI VL805-06 USB 3.0 stava diventando piuttosto tostato (il mirino è direttamente sopra il chip nell’immagine termica sottostante):

Taken with iPhone11,2,iOS 12.3.1

I parametri di riferimento che ho eseguito erano abbastanza coerenti quando avevo un ventilatore direttamente sopra la scheda, ma sarebbero diventati molto lenti (a volte 2-3 volte più lenti) se non avessi avuto aria che passava sopra l’apparecchio.

 

Prova comparativa microSD : i benchmark

 

Card Make/Model hdparmbuffered dd write 4K rand read 4K rand write
Samsung Pro+ 32GB 43.90 MB/s 39.6 MB/s 10.77 MB/s 2.61 MB/s
Samsung Pro Endurance U132GB 43.52 MB/s 37.4 MB/s 10.21 MB/s 2.83 MB/s
Samsung Pro 16GB 43.86 MB/s 38.6 MB/s 10.49 MB/s 1.74 MB/s
Samsung Evo Plus 64GB 43.45 MB/s 22.4 MB/s 7.93 MB/s 2.37 MB/s
Samsung Evo+ 32GB 43.92 MB/s 21.3 MB/s 10.80 MB/s 3.85 MB/s
Samsung Evo 16GB 43.40 MB/s 12.1 MB/s 7.09 MB/s 1.24 MB/s
NOOBS (1.4, C6) 8GB 43.15 MB/s 6.6 MB/s 7.14 MB/s 1.05 MB/s
SanDisk Extreme U3 V30 A264GB 43.73 MB/s 36.3 MB/s 7.35 MB/s 3.70 MB/s
SanDisk Extreme Pro A1 32GB 43.87 MB/s 38.8 MB/s 9.82 MB/s 4.70 MB/s
SanDisk Extreme Pro 8GB 43.78 MB/s 35.5 MB/s 9.22 MB/s 1.25 MB/s
SanDisk Extreme 16GB 43.95 MB/s 39.5 MB/s 9.46 MB/s 2.46 MB/s
SanDisk Ultra 16GB 42.30 MB/s 8.2 MB/s 6.57 MB/s 1.52 MB/s
Lexar Professional U3 A2 V30128GB 44.35 MB/s 32.4 MB/s 9.65 MB/s 2.55 MB/s
Sony C10 U3 32GB 40.78 MB/s 35.7 MB/s 1.58 MB/s 0.66 MB/s
Toshiba C10 U1 16GB 41.62 MB/s 12.0 MB/s 6.62 MB/s 0.22 MB/s

Rasbperry Pi 3 model B+

Card Make/Model hdparm buffered dd write 4K rand read 4K rand write
Samsung Pro+ 32GB 21.89 MB/s 19.7 MB/s 8.59 MB/s 2.14 MB/s
Samsung Pro 16GB 21.85 MB/s 21.6 MB/s 8.42 MB/s 1.34 MB/s
Samsung Evo Plus 64GB 21.71 MB/s 19.5 MB/s 7.87 MB/s 2.33 MB/s
Samsung Evo+ 32GB 21.98 MB/s 15.8 MB/s 8.63 MB/s 3.17 MB/s
Samsung Evo 16GB 18.62 MB/s 11.3 MB/s 5.73 MB/s 0.93 MB/s
NOOBS (1.4, C6) 8GB 18.81 MB/s 6.5 MB/s 6.35 MB/s 0.99 MB/s
SanDisk Extreme Pro 8GB 22.06 MB/s 20.2 MB/s 8.16 MB/s 1.21 MB/s
SanDisk Extreme 16GB 22.15 MB/s 20.6 MB/s 8.31 MB/s 2.21 MB/s
SanDisk Ultra 16GB 21.09 MB/s 8.2 MB/s 5.93 MB/s 1.57 MB/s
Sony C10 U3 32GB 19.51 MB/s 18.5 MB/s 2.26 MB/s 0.65 MB/s

Rasbperry Pi 3 model B

Card Make/Model hdparm buffered dd write 4K rand read 4K rand write
Samsung Pro+ 32GB 21.88 MB/s 20.2 MB/s 9.61 MB/s 2.16 MB/s
Samsung Pro 16GB 21.62 MB/s 22.1 MB/s 9.41 MB/s 1.66 MB/s
Samsung Evo+ 32GB 21.77 MB/s 15.8 MB/s 9.66 MB/s 3.43 MB/s
Samsung Evo Select 32GB 19.59 MB/s 5.7 MB/s 4.34 MB/s 0.71 MB/s
Samsung Evo 16GB 20.08 MB/s 10.4 MB/s 6.02 MB/s 1.02 MB/s
SanDisk Extreme Pro 8GB 21.02 MB/s 21.2 MB/s 9.07 MB/s 1.25 MB/s
SanDisk Extreme 16GB 22.08 MB/s 21.8 MB/s 9.44 MB/s 2.42 MB/s
SanDisk Ultra 16GB 20.79 MB/s 7.9 MB/s 5.98 MB/s 1.57 MB/s

Rasbperry Pi 3 model B – overclocked microSD

È possibile raddoppiare la velocità del lettore di schede microSD aggiungendo un ulteriore dtoverlay dentro il file /boot/config.txt

Card Make/Model hdparm buffered dd write 4K rand read 4K rand write
Samsung Pro+ 32GB 39.93 MB/s 31.0 MB/s 12.15 MB/s 1.84 MB/s
Samsung Pro 16GB1 31.59 MB/s 32.8 MB/s 11.20 MB/s 1.48 MB/s
Samsung Evo+ 32GB 37.68 MB/s 20.0 MB/s 12.20 MB/s 3.75 MB/s
Samsung Evo Select 32GB 24.56 MB/s 13.2 MB/s 4.69 MB/s 0.82 MB/s
Samsung Evo 16GB 32.47 MB/s 11.8 MB/s 6.44 MB/s 1.25 MB/s
SanDisk Extreme Pro 8GB 40.52 MB/s 35.9 MB/s 11.31 MB/s 1.28 MB/s
SanDisk Extreme 16GB 40.88 MB/s 39.1 MB/s 11.77 MB/s 2.36 MB/s
SanDisk Ultra 16GB 37.41 MB/s 8.5 MB/s 6.71 MB/s 1.61 MB/s

1 La Samsung Pro si è rifiutata di effettuare l’overclock a 100 MHz; ho potuto effettuare l’overclock solo a 80 MHz in modo affidabile.

Rasbperry Pi 2 model B

Card Make/Model hdparmbuffered dd write 4K rand read 4K rand write
OWC Envoy SSD (USB) 64GB 34.13 MB/s 34.4 MB/s 7.06 MB/s 8.20 MB/s
SanDisk Ultra Fit (USB) 32GB 31.72 MB/s 14.5 MB/s 4.99 MB/s 1.07 MB/s
Samsung Pro+ 32GB 21.75 MB/s 18.7 MB/s 8.31 MB/s 1.75 MB/s
Samsung Pro 16GB 18.39 MB/s 18.2 MB/s 7.66 MB/s 1.01 MB/s
Samsung Evo+ 32GB 18.45 MB/s 14.0 MB/s 8.02 MB/s 3.00 MB/s
Samsung Evo 16GB 17.39 MB/s 10.4 MB/s 5.36 MB/s 1.05 MB/s
SanDisk Extreme Pro 8GB 18.43 MB/s 17.6 MB/s 7.52 MB/s 1.18 MB/s
SanDisk Extreme 16GB 18.51 MB/s 18.3 MB/s 8.10 MB/s 2.30 MB/s
SanDisk Ultra 16GB 17.73 MB/s 7.3 MB/s 5.34 MB/s 1.52 MB/s
NOOBS (1.4, C6) 8GB 17.62 MB/s 6.5 MB/s 5.63 MB/s 1.01 MB/s
Transcend Premium 300x32GB 18.14 MB/s 10.3 MB/s 5.21 MB/s 0.84 MB/s
PNY Turbo (C10 90MB/s) 16GB 17.46 MB/s TODO 6.25 MB/s 0.62 MB/s
Toshiba (C10 40MB/s) 16GB 17.66 MB/s 11.2 MB/s 5.21 MB/s 0.21 MB/s
Sony (C10 70MB/s) 16GB 15.38 MB/s 8.9 MB/s 2.47 MB/s 0.24 MB/s
Kingston (C10) 16GB 17.78 MB/s 9.0 MB/s 5.75 MB/s 0.21 MB/s
Kingston (C10) 8GB 12.80 MB/s 7.2 MB/s 5.56 MB/s 0.17 MB/s
Nasya (C10) 16GB 16.05 MB/s 8.4 MB/s 2.28 MB/s 0.38 MB/s
No-name (C4) 4GB 13.37 MB/s Sad Painful Excruciating

 

 

 

 

 


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: