Como saber la velocidad de un disco duro en Linux
Esto puede resultar muy útil cuando estamos utilizando una aplicación y deseamos conocer el acceso y grado de utilización a los dispositivos de E/S.
En el caso de que queramos saber qué capacidad máxima de lectura y escritura tiene nuestro disco (o dispositivo externo) utilizaremos las aplicaciones hdparm y dd como les eplicare a continuación.
Para obtener la velocidad de lectura del disco:
En mi caso, con un disco duro en estado sólido (SSD):Código HTML:ahornero@6581-D$ sudo hdparm -tT /dev/sda1
Unos resultados bastante realistas teniendo en cuenta que el fabricante (Intel) certifica los 3GB/s (un poco truncandos los resultados, hay que diferenciar entre caché y buffer).Código HTML:/dev/sda1: Timing cached reads: 4308 MB in 2.00 seconds = 2157.12 MB/sec Timing buffered disk reads: 338 MB in 3.01 seconds = 112.40 MB/sec
Ahora, para obtener unos resultados más contrastados haremos los mismo iterando 5 veces el comando:
Obteniendo el siguiente resultado:Código HTML:ahornero@6581-D$ for i in 1 2 3; do sudo hdparm -tT /dev/sda1; do
Código HTML:/dev/sda1: Timing cached reads: 4264 MB in 2.00 seconds = 2133.68 MB/sec Timing buffered disk reads: 338 MB in 3.01 seconds = 112.42 MB/secCódigo HTML:/dev/sda1: Timing cached reads: 4264 MB in 2.00 seconds = 2133.71 MB/sec Timing buffered disk reads: 338 MB in 3.01 seconds = 112.33 MB/secCon los que podremos verificar los datos.Código HTML:/dev/sda1: Timing cached reads: 4220 MB in 2.00 seconds = 2111.50 MB/sec Timing buffered disk reads: 338 MB in 3.01 seconds = 112.42 MB/sec
Para visualizar la velocidad máxima de escritura, obtendremos los datos del arranque del sistema, así, con el parámetro -I y filtrando los resultados con grep:
ahornero@6581-D$ sudo hdparm -I /dev/sda1 | grep -i speed
Obteniendo:
Estos sí serían los ideales, es decir, los que nos da el fabricante.Código HTML:* SATA-I signaling speed (1.5Gb/s) * SATA-II signaling speed (3.0Gb/s)
Para verificar la escritura en disco, usaremos el commando dd, creamos un archivo (testing.file) cogiendo los datos del /dev/zero con un tamaño de 4GB y veremos la tasa de escritura. Así:
ahornero@6581-D$ dd if=/dev/zero of=testing.file bs=8k count=512k
524288+0 records in
524288+0 records out
4294967296 bytes (4.3 GB) copied, 72.6282 seconds, 59.1 MB/s
Y para pequeñas escrituras (e.g. 512KB), unos resultados impresionantes:
ahornero@6581-D$ dd if=/dev/zero of=testing.file bs=512k count=1
1+0 records in
1+0 records out
524288 bytes (524 kB) copied, 0.00178933 seconds, 293 MB/s
Ahora sí se cumplen esos 300MB/s que decía el fabricante.
PS: La última prueba con cierta gracia y picardía porque he modificado el tamaño del bloque poniéndolo al máximo del rango y con la cuenta a 1, de ahí esa diferencia tan exagerada. Probad lo inverso, es decir: bs=1 y count=512k …







Citar
