Come controllare le prestazioni del disco rigido

257

Come verificare le prestazioni di un disco rigido (tramite terminale o interfaccia grafica). La velocità di scrittura. La velocità di lettura Dimensione e velocità della cache. Velocità casuale.

    
posta Luis Alvarado 12.12.2011 - 01:22

8 risposte

334

Metodo terminale

hdparm è un buon punto di partenza.

sudo hdparm -Tt /dev/sda

/dev/sda:
Timing cached reads:   12540 MB in  2.00 seconds = 6277.67 MB/sec
Timing buffered disk reads: 234 MB in  3.00 seconds =  77.98 MB/sec

sudo hdparm -v /dev/sda fornirà anche le informazioni.

dd ti darà informazioni sulla velocità di scrittura.

Se l'unità non ha un file system (e solo allora ), utilizza of=/dev/sda .

Altrimenti, montalo su / tmp e scrivi quindi elimina il file di output di test.

dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output

10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s

Metodo grafico

  1. Vai a Sistema - & gt; Amministrazione - & gt; Utility Disco.
    • In alternativa, lancia l'utilità del disco Gnome dalla riga di comando eseguendo gnome-disks
  2. Seleziona il tuo disco rigido nel riquadro sinistro.
  3. Ora fai clic sul pulsante "Benchmark - Misura prestazioni unità" nel riquadro di destra.
  4. Si apre una nuova finestra con i grafici. Troverete due pulsanti. Uno è per "Inizia solo il benchmark di lettura" e un altro è "Inizia lettura / Scrivi benchmark". Quando fai clic sul pulsante di qualcuno, inizia il benchmarking del disco rigido.

Come eseguire il benchmark I / O del disco

Articolo

C'è qualcosa che vuoi?

    
risposta data Panther 12.12.2011 - 01:34
72

Suominen ha ragione, dovremmo usare una specie di sincronizzazione; ma c'è un metodo più semplice, conv = fdatasync farà il lavoro:

dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
1024+0records in
1024+0 records out
402653184 bytes (403 MB) copied, 3.19232 s, 126 MB/s
    
risposta data Tele 18.08.2013 - 20:31
42

Non consiglierei di usare /dev/urandom perché è basato su software e lento come maiale. Meglio prendere un po 'di dati casuali su ramdisk. Sul test del disco rigido casuale non importa, perché ogni byte è scritto come è (anche su ssd con dd). Ma se testiamo il pool zfs deduplicato con zero puro o dati casuali, c'è un'enorme differenza di prestazioni.

Un altro punto di vista deve essere l'inclusione del tempo di sincronizzazione; tutti i moderni filesystem utilizzano la memorizzazione nella cache delle operazioni sui file.

Per misurare realmente la velocità del disco e non la memoria, dobbiamo sincronizzare il filesystem per eliminare l'effetto di memorizzazione nella cache. Questo può essere fatto facilmente da:

time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync"

con questo metodo ottieni l'output:

sync ; time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k  && sync" ; rm testfile 
1024+0 records in
1024+0 records out
104857600 bytes (105 MB) copied, 0.270684 s, 387 MB/s

real    0m0.441s
user    0m0.004s
sys 0m0.124s

quindi il disco datarate è solo 104857600 / 0,441 = 237772335 B / s - & gt; 237MB / s

Più di 100 MB / s in meno rispetto alla memorizzazione nella cache.

Buon benchmarking,

    
risposta data Pasi Suominen 07.12.2012 - 00:18
30

Se vuoi monitorare la velocità di lettura e scrittura del disco in tempo reale, puoi utilizzare lo strumento iotop .

Questo è utile per ottenere informazioni esatte su come si comporta un disco per una particolare applicazione o attività. L'output mostrerà la velocità di lettura / scrittura per processo e la velocità di lettura / scrittura totale per il server, molto simile a top .

Per installare iotop:

sudo apt-get install iotop  

Per eseguirlo:

sudo iotop
    
risposta data Lars 17.09.2013 - 16:24
23

bonnie ++ è l'ultima utility di benchmark che conosco per linux.

(Attualmente sto preparando un linux livecd al lavoro con bonnie ++ su di esso per testare con esso il nostro computer basato su Windows!)

Si occupa della cache, della sincronizzazione, dei dati casuali, della posizione casuale su disco, degli aggiornamenti di piccole dimensioni, di grandi aggiornamenti, letture, scritture, ecc. Confrontando un tasto usb, un disco rigido (rotativo), un'unità a stato solido e un il filesystem basato su ram può essere molto informativo per il principiante.

Non ho idea se sia incluso in Ubuntu, ma puoi compilarlo facilmente dalla fonte.

link

    
risposta data Corto 03.02.2014 - 17:13
15

Velocità di scrittura

$ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s

La dimensione del blocco è in realtà piuttosto grande. Puoi provare con dimensioni più piccole come 64k o anche 4k.

Velocità di lettura

Eseguire il seguente comando per cancellare la memoria cache

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

Ora leggi il file che è stato creato nel test di scrittura:

$ dd if=./largefile of=/dev/null bs=4k
165118+0 records in
165118+0 records out
676323328 bytes (676 MB) copied, 3.0114 s, 225 MB/s
    
risposta data Limon Monte 06.05.2016 - 00:12
12

alcuni suggerimenti su come usare bonnie ++

bonnie++ -d [TEST_LOCATION] -s [TEST_SIZE] -n 0 -m [TEST_NAME] -f -b -u [TEST_USER] 
bonnie++ -d /tmp -s 4G -n 0 -m TEST -f -b -u james

Un po 'di più su: SEMPLICE BONNIE ++ ESEMPIO .

    
risposta data nyxee 28.09.2015 - 21:02
8

Se vuoi precisione, dovresti usare fio . Richiede la lettura del manuale ( man fio ) ma ti darà risultati accurati. Si noti che per qualsiasi precisione, è necessario specificare esattamente ciò che si desidera misurare. Alcuni esempi:

Velocità di lettura sequenziale con blocchi grandi (questo dovrebbe essere vicino al numero che vedi nelle specifiche per l'unità):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Velocità SCRITTURA sequenziale con blocchi grandi (questo dovrebbe essere vicino al numero che vedi nelle specifiche per la tua unità):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Random 4K read QD1 (questo è il numero che conta davvero per le prestazioni del mondo reale a meno che tu non lo sappia di sicuro):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Mixed random 4K lettura e scrittura QD1 con sincronizzazione (questo è il numero peggiore che ti aspetti dal tuo disco, solitamente 1-10% del numero elencato nella scheda tecnica):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Aumenta l'argomento --size per aumentare la dimensione del file. L'uso di file più grandi può ridurre i numeri che si ottengono in base alla tecnologia e al firmware dell'unità. I file di piccole dimensioni danno risultati "troppo buoni" per i supporti di rotazione perché la testina di lettura non deve spostarsi più di tanto. Se il tuo dispositivo è quasi vuoto, l'utilizzo di un file abbastanza grande da riempire quasi l'unità ti darà il comportamento peggiore per ogni test. In caso di SSD, le dimensioni del file non contano molto.

Si noti che fio creerà il file temporaneo richiesto alla prima esecuzione. Sarà riempito con dati casuali per evitare di ottenere numeri troppo buoni da dispositivi che imbrogliano comprimendo i dati prima di scriverli in una memoria permanente. Il file temporaneo verrà chiamato fio-tempfile.dat negli esempi sopra e memorizzato nella directory di lavoro corrente. Quindi dovresti prima passare alla directory che è montata sul dispositivo che vuoi testare.

    
risposta data Mikko Rantalainen 01.01.2018 - 19:14

Leggi altre domande sui tag