Questa guida ti insegnerà come trovare la velocità di trasferimento dei dati del disco rigido in Linux. In altre parole, identificheremo la velocità con cui il disco rigido fornisce i dati nei sistemi operativi simili a Linux e Unix.
Parleremo anche di altre cose utili come quanti settori può leggere un HDD contemporaneamente, funzionalità di lettura anticipata, modalità acustica, cache di writeback e benchmarking HDD ecc.
Ai fini di questa guida, utilizzeremo hdparm
utilità della riga di comando per controllare la velocità di lettura, scrittura del disco rigido e testare le prestazioni del disco rigido.
Nel caso te lo fossi perso, abbiamo già utilizzato hdparm
per trovare i dettagli dell'unità disco rigido in Linux. Ora useremo lo stesso hdparm
utility per misurare la velocità di trasmissione del disco rigido.
Una parola di cautela
Anche se hdparm
offre vantaggi significativi per aumentare le prestazioni del disco, inoltre è ESTREMAMENTE PERICOLOSO . Molto probabilmente porterà a una massiccia perdita di dati quando alcuni parametri vengono utilizzati in modo improprio. La documentazione di hdparm suggerisce che NON DOVREBBE UTILIZZARE ALCUNI COMANDI IN NESSUN CASO . Quindi ho escluso comandi così pericolosi in questa guida. Ancora più importante, si consiglia sempre di eseguire il backup del disco rigido prima di testare il disco rigido con hdparm
sul tuo sistema Linux.
Trova la velocità di trasferimento dei dati del disco rigido in Linux
Per controllare la velocità di trasferimento dei dati dell'HDD in Linux, esegui "hdparm"
comando con -t
segnala come di seguito:
$ sudo hdparm -t /dev/sda
Risultato di esempio:
/dev/sda: Timing buffered disk reads: 246 MB in 3.00 seconds = 81.97 MB/sec
Come puoi vedere, la velocità di trasferimento dei dati è 81,97 MB al secondo. Assicurati che nessun altro programma sia in esecuzione in background.
Esegui hdparm
comanda almeno due o tre volte e calcola la velocità media di trasferimento dati del tuo disco dai risultati.
Come puoi vedere nell'output sopra, il kernel Linux mette i dati recuperati dall'HDD in un buffer durante il trasferimento dei dati. Se desideri misurare una velocità di trasferimento dati più accurata, utilizza:
$ sudo hdparm -t --direct /dev/sda
Risultato di esempio:
/dev/sda: Timing O_DIRECT disk reads: 242 MB in 3.02 seconds = 80.21 MB/sec
Ora, il hdparm
il programma non utilizzerà il buffer e leggerà i dati direttamente dall'HDD. Come hai notato nell'output sopra, la velocità di trasferimento è diminuita senza il buffer.
Hdparm
leggerà sempre i dati dall'inizio dei dispositivi di archiviazione. Se vuoi hdparm
per leggere i dati da un'altra area del dispositivo di archiviazione, puoi utilizzare il "offset"
parametro come di seguito.
$ sudo hdparm -t --direct --offset 10 /dev/sda
Qui, 10
sta per numero di Gigabyte da saltare. Come per il comando precedente, i primi 10 GB
verrà saltato durante la lettura dei dati dal disco. Su un 20GB
disco, il comando precedente consegnerebbe i dati dal centro del disco.
Risultato di esempio:
dev/sda: Timing O_DIRECT disk reads (offset 10 GB): 244 MB in 3.01 seconds = 81.15 MB/sec
Confronta la velocità di trasferimento dell'HDD con e senza i valori di offset. Quando abbiamo usato il "offset"
parametro nel secondo comando, la velocità di trasferimento è diminuita. Quindi, sembra che i dischi rigidi trasmettano i dati un po' più lentamente dalle aree esterne dei dischi.
Trova quanti settori legge un disco rigido
Di solito, un disco rigido legge più settori contemporaneamente per velocizzare la trasmissione dei dati. Puoi trovare questo valore eseguendo:
$ sudo hdparm -I /dev/sda
Sotto le "Capabilities"
sezione, vedrai un output come di seguito.
[...] Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: 254 Recommended acoustic management value: 208, current value: 208 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 [...]
Come per l'output sopra, il mio disco rigido legge 16 sectors
alla volta.
Alcuni HDD moderni possono recuperare i settori in anticipo. Questa funzione si chiama "read ahead"
. Puoi trovare questo valore usando "-a"
segnala come di seguito:
$ sudo hdparm -a /dev/sda
Risultato di esempio:
/dev/sda: readahead = 256 (on)
Come puoi vedere nell'output sopra, l'HDD può leggere 256
settori in anticipo.
Metti l'HDD in modalità silenziosa per aumentare il tempo di accesso
Possiamo rallentare il movimento della testina in alcuni dischi rigidi moderni. Rallentare il movimento della testa diminuirà il livello di rumore e aumenterà i tempi di accesso.
Per verificare se il tuo HDD supporta questa "acoustic mode"
funzione, esegui:
$ sudo hdparm -M /dev/sda
Se l'unità supporta la modalità acustica, dovresti avere un'uscita come quella di seguito.
/dev/sda: acoustic = 208 (128=quiet ... 254=fast)
Il valore attuale della modalità acustica è 208
nel mio sistema. I valori della modalità acustica possono essere impostati tra 128
a 254
.
Per mettere l'HDD in modalità silenziosa, esegui:
$ sudo hdparm -M 128 /dev/sda
Per mettere il movimento della testa ad alta velocità, corri:
$ sudo hdparm -M 254 /dev/sda
Tieni presente che il tuo sistema operativo dovrebbe supportare questa funzione.
Se non supporta questa funzione, vedrai questo:
dev/sda: acoustic = not supported
Memorizzazione nella cache di writeback
Quando la modalità di memorizzazione nella cache di riscrittura è abilitata, l'HDD metterà i dati da scrivere in un buffer. In questo modo l'HDD può scrivere più velocemente.
Per verificare se la modalità di memorizzazione nella cache di writeback è abilitata, usa il flag "-W".
$ sudo hdparm -W /dev/sda
Risultato di esempio:
/dev/sda: write-caching = 1 (on)
Se il valore di output è 1, la funzione di memorizzazione nella cache di writeback è abilitata. Se è 0, la cache di writeback è disabilitata. Puoi abilitarlo usando il comando:
$ sudo hdparm -W1 /dev/sda
Se hdparm non è in grado di abilitare questa funzione, assicurati che la funzione di memorizzazione nella cache di writeback sia abilitata nel BIOS.
Per disabilitarlo, usa semplicemente:
$ sudo hdparm -W0 /dev/sda
Anche se la memorizzazione nella cache di scrittura aumenta la velocità di scrittura, non è consigliata in alcune situazioni.
Ad esempio, quando l'alimentazione viene interrotta improvvisamente, i dati nel buffer andrebbero persi in modo permanente. Quindi non dovresti abilitare la funzione di memorizzazione nella cache di writeback durante l'esecuzione di programmi di database come PostgreSQL.
Esegui il benchmark del disco rigido dalla riga di comando
Per confrontare l'HDD e testare la velocità leggibile dell'unità, usa "T"
maiuscolo e minuscolo "t"
flag insieme come di seguito.
$ sudo hdparm -Tt /dev/sda
Risultato di esempio:
/dev/sda: Timing cached reads: 7232 MB in 1.99 seconds = 3629.42 MB/sec Timing buffered disk reads: 250 MB in 3.01 seconds = 82.99 MB/sec
Ripetere questo comando almeno 2-3 volte per ottenere un risultato significativo.
Per maggiori dettagli, controlla le pagine man.
$ man hdparm
Benchmark del disco rigido utilizzando l'utility grafica GNOME Disks
Se non ti piace il modo della riga di comando, i Dischi GNOME Il programma GUI ci consente anche di confrontare i dischi rigidi.
Apri Dischi dal menu o dal trattino. Seleziona il disco di cui desideri eseguire il benchmark, fai clic su tre punti e scegli "Benchmark Disk" opzione.
Fai clic su "Avvia benchmark" opzione per iniziare il benchmarking:
Conclusione
In questa guida, abbiamo discusso di come trovare la velocità di trasferimento dei dati del disco rigido in Linux (ovvero la velocità con cui il disco rigido fornisce i dati). Abbiamo anche esaminato come confrontare il disco rigido dalla modalità riga di comando e dalla modalità grafica utilizzando l'utilità GUI di Gnome Disks.
Immagine in primo piano da Pixabay.