Ho acquistato una nuova scheda SD e le prestazioni dichiarate sono molto lontane dal mio benchmark. C'è qualcosa che posso fare per migliorare la velocità di trasferimento quando lavoro con questa scheda SD?
Informazioni sul disco:
$ df --output=source,fstype,size,target -h
Filesystem Type Size Mounted on
/dev/mmcblk0p1 fuseblk 60G /media/drew/6564-6433
Partition type: HPFS/NTFS
Contents: exFAT (version 1.0)
La confezione della carta afferma:
Velocità fino a 30 MB/s* (200X)
Seguendo l'asterisco si accede a:
Velocità di trasferimento fino a 30 MB/s; velocità di scrittura inferiore. Sulla base di test interni; le prestazioni potrebbero essere inferiori a seconda del dispositivo host. 1 MP =1.000.000 di byte. X =150 KB/s.
La mia macchina all'inizio non ha riconosciuto la formattazione della scheda, quindi ho installato exfat-fuse
il pacchetto e ha funzionato al prossimo tentativo.
Ho quindi eseguito un benchmark utilizzando gnome-disks
:
Come puoi vedere, la velocità di lettura media di 7,1 MB/s è molto lontana da 30 MB/s. È 4,2 volte più lento (23%).
C'è qualcosa che posso fare per migliorare la velocità di trasferimento quando lavoro con questa scheda SD?
MODIFICA output di hdparam
come richiesto nei commenti:
$ sudo hdparm -tT /dev/mmcblk0
/dev/mmcblk0:
Timing cached reads: 12186 MB in 1.99 seconds = 6111.71 MB/sec
Timing buffered disk reads: 34 MB in 3.17 seconds = 10.73 MB/sec
L'ho eseguito quattro volte su una macchina non occupata e i risultati sono stati coerenti tra le corse.
Il primo numero (6GB/s) è descritto come:
la velocità di lettura direttamente dalla cache del buffer di Linux senza accesso al disco. Questa misurazione è essenzialmente un'indicazione del throughput del processore, della cache e della memoria del sistema in prova.
Il secondo numero (10 MB/s) è descritto come:
Questo mostra la velocità di lettura attraverso la cache del buffer sul disco senza alcuna precedente memorizzazione nella cache dei dati. Questa misurazione è un'indicazione della velocità con cui l'unità può sostenere la lettura sequenziale dei dati in Linux, senza alcun sovraccarico del filesystem.
Quindi 10 MB/s potrebbero essere il throughput per un diverso tipo di carico, o forse solo per un tempo più breve (il grafico incompleto sopra è stato eseguito per circa 5 minuti prima di acquisire quello screenshot). Ad ogni modo, non è ancora vicino a 30 MB /s!
Correlati:come consentire agli utenti non sudoers di eseguire uno script che esegue operazioni di root?