Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Calcular la velocidad del disco en Linux

El otro día os comentaba como monitorizar nuestros discos 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 os comento a continuación.

Para obtener la velocidad de lectura del disco:

ahornero@6581-D$ sudo hdparm -tT /dev/sda1

En mi caso, con un disco duro en estado sólido (SSD):

/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

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).

Ahora, para obtener unos resultados más contrastados haremos los mismo iterando 5 veces el comando:

ahornero@6581-D$ for i in 1 2 3; do sudo hdparm -tT /dev/sda1; do

Obteniendo el siguiente resultado:

/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/sec

/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/sec

/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

Con los que podremos verificar los datos.

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:

* SATA-I signaling speed (1.5Gb/s)
* SATA-II signaling speed (3.0Gb/s)

Estos sí serían los ideales, es decir, los que nos da el fabricante.

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 …

Leer entrada anterior
TuxInfo número 34 disponible

Como cada mes, os traemos un nuevo número de la revista TuxInfo, en esta ocasión, le toca el turno al...

Cerrar