Cómo verificar el rendimiento del disco duro

257

Cómo verificar el rendimiento de un disco duro (ya sea a través del terminal o GUI). La velocidad de escritura. La velocidad de lectura. Tamaño y velocidad de la caché Velocidad aleatoria.

    
pregunta Luis Alvarado 12.12.2011 - 01:22

8 respuestas

339

Método de terminal

hdparm es un buen lugar para comenzar.

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 también dará información.

dd le dará información sobre la velocidad de escritura.

Si el disco no tiene un sistema de archivos (y solo entonces ), use of=/dev/sda .

De lo contrario, móntelo en / tmp y escriba y luego elimine el archivo de salida de prueba.

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

Método gráfico

  1. Ir a Sistema - & gt; Administración - & gt; Utilidad de disco.
    • Como alternativa, ejecute la utilidad de disco Gnome desde la línea de comando ejecutando gnome-disks
  2. Seleccione su disco duro en el panel izquierdo.
  3. Ahora haga clic en el botón "Benchmark - Measure Drive Performance" en el panel derecho.
  4. Se abre una nueva ventana con gráficos. Encontrarás dos botones. Uno es para "Comenzar lectura comparativa de solo lectura" y el otro es "Comenzar lectura / escritura de referencia". Cuando haces clic en cualquiera, se inicia el benchmarking del disco duro.

Cómo comparar la E / S de disco

Artículo

¿Hay algo más que quieras?

    
respondido por el Panther 12.12.2011 - 01:34
72

Suominen tiene razón, deberíamos usar algún tipo de sincronización; pero hay un método más simple, conv = fdatasync hará el trabajo:

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
    
respondido por el Tele 18.08.2013 - 20:31
42

No recomendaría usar /dev/urandom porque está basado en software y lento como pig. Es mejor tomar un trozo de datos aleatorios en ramdisk. En las pruebas de disco duro, al azar no importa, porque cada byte se escribe como está (también en ssd con dd). Pero si probamos el grupo dedificado zfs con cero puro o datos aleatorios, existe una gran diferencia de rendimiento.

Otro punto de vista debe ser la inclusión del tiempo de sincronización; todos los sistemas de archivos modernos usan el almacenamiento en caché en las operaciones de archivos.

Para medir realmente la velocidad del disco y no la memoria, debemos sincronizar el sistema de archivos para eliminar el efecto de almacenamiento en caché. Eso se puede hacer fácilmente por:

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

con ese método obtienes resultados:

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

entonces la tasa de datos del disco es solo 104857600 / 0.441 = 237772335 B / s - & gt; 237 MB / s

Eso es más de 100 MB / s más bajo que con el almacenamiento en caché.

Happy benchmarking,

    
respondido por el Pasi Suominen 07.12.2012 - 00:18
30

Si desea controlar la velocidad de lectura y escritura del disco en tiempo real, puede usar la herramienta iotop .

Esto es útil para obtener información exacta sobre cómo funciona un disco para una aplicación o tarea en particular. La salida mostrará la velocidad de lectura / escritura por proceso y la velocidad total de lectura / escritura para el servidor, muy similar a top .

Para instalar iotop:

sudo apt-get install iotop  

Para ejecutarlo:

sudo iotop
    
respondido por el Lars 17.09.2013 - 16:24
23

bonnie ++ es la última utilidad de referencia que conozco para Linux.

(¡Actualmente estoy preparando un livecd de linux en el trabajo con Bonnie ++ para probar nuestra máquina basada en Windows con él!)

Se ocupa del almacenamiento en caché, la sincronización, los datos aleatorios, la ubicación aleatoria en el disco, las actualizaciones de pequeño tamaño, las actualizaciones grandes, las lecturas, las escrituras, etc. Comparando un usbkey, un disco duro (rotativo), un disco de estado sólido y un El sistema de archivos basado en RAM puede ser muy informativo para el principiante.

No tengo idea si está incluido en Ubuntu, pero puedes compilarlo desde la fuente fácilmente.

enlace

    
respondido por el Corto 03.02.2014 - 17:13
17

Velocidad de escritura

$ 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

El tamaño del bloque es realmente bastante grande. Puede probar con tamaños más pequeños, como 64k o incluso 4k.

Velocidad de lectura

Ejecute el siguiente comando para borrar la memoria caché

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

Ahora lea el archivo que se creó en la prueba de escritura:

$ 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
    
respondido por el Limon Monte 06.05.2016 - 00:12
12

algunos consejos sobre cómo usar 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 poco más en: SIMPLE BONNIE ++ EJEMPLO .

    
respondido por el nyxee 28.09.2015 - 21:02
8

Si quieres precisión, debes usar fio . Requiere leer el manual ( man fio ) pero le dará resultados precisos. Tenga en cuenta que para cualquier precisión, necesita especificar exactamente lo que quiere medir. Algunos ejemplos:

Velocidad de LECTURA secuencial con bloques grandes (debe estar cerca del número que ve en las especificaciones de su disco):

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

Velocidad de ESCRITURA secuencial con bloques grandes (debe estar cerca del número que ve en las especificaciones de su disco):

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 lee QD1 (este es el número que realmente importa para el rendimiento en el mundo real a menos que sepas de seguro):

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

4K de lectura y escritura aleatoria mixta QD1 con sincronización (este es el peor número de caso que debe esperar de su unidad, generalmente 1-10% del número indicado en la hoja de especificaciones):

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

Incremente el argumento --size para aumentar el tamaño del archivo. El uso de archivos más grandes puede reducir los números que obtiene dependiendo de la tecnología de la unidad y el firmware. Los archivos pequeños darán resultados "demasiado buenos" para medios rotacionales porque el cabezal de lectura no necesita moverse demasiado. Si su dispositivo está casi vacío, usar un archivo lo suficientemente grande para casi llenar el disco le dará el peor comportamiento posible para cada prueba. En el caso de SSD, el tamaño del archivo no importa tanto.

Tenga en cuenta que fio creará el archivo temporal requerido en la primera ejecución. Se rellenará con datos aleatorios para evitar obtener demasiados números de dispositivos que hacen trampa comprimiendo los datos antes de escribirlos en un almacenamiento permanente. El archivo temporal se llamará fio-tempfile.dat en los ejemplos anteriores y se almacenará en el directorio de trabajo actual. Por lo tanto, primero debe cambiar al directorio que está montado en el dispositivo que desea probar.

    
respondido por el Mikko Rantalainen 01.01.2018 - 19:14

Lea otras preguntas en las etiquetas