Como probar el rendimiento de I/O de tu disco duro en GNU/Linux
|En algunas ocasiones, es necesario probar o medir el rendimiento de entrada y salida de un disco duro, con el fin de identificar y reconocer posibles fallas o defectos ya sea por tiempo de uso, algun golpe, u otro tipo de falla.
En GNU/Linux no necesitamos instalar complejos programas para realizar este tipo de pruebas, (Obviamente existen aplicaciones que hacen pruebas mucho mas a fondo), sin embargo de esta forma sencilla podremos determinar o tener por lo menos un indicio que algo anda mal en nuestro DD.
time dd if=/dev/zero of=file bs=512k count=200
Este comando, escribe 200 bloques de 512k en un archivo usando el comando dd, y como resultado arroja el tiempo exacto en que tardo en realizar todo este proceso.
En mi caso este fue el resultado:
200+0 registros leídos
200+0 registros escritos
104857600 bytes (105 MB) copiados, 0,726764 s, 144 MB/sreal 0m1.436s
user 0m0.004s
sys 0m0.172s
Por lo que ven, se demoro muy poco tiempo en escribir el archivo, esto indica que al parecer mi disco duro trabaja adecuadamente. Sin embargo realice el test en un servidor y este fue el resultado:
200+0 records in
200+0 records out
104857600 bytes (105 MB) copied, 0,263821 s, 397 MB/sreal 0m0.329s
user 0m0.000s
sys 0m0.324s
Este servidor hizo la tarea mucho mas rapido.
¿Cuanto tardan sus discos duros en escribir 200 bloques de 512k? Publiquen sus resultados.
Ouch! El mío demoró 2 segundos escribiendo en mi partición /home. Ahora entiendo por qué demora tanto la exportación de archivos. Gracias por los puntos de comparación.
200+0 records in
200+0 records out
104857600 bytes (105 MB) copied, 0.147002 seconds, 713 MB/s
real 0m0.257s
user 0m0.003s
sys 0m0.138s
—
200+0 records in
200+0 records out
104857600 bytes (105 MB) copied, 0.122356 seconds, 857 MB/s
real 0m0.146s
user 0m0.000s
sys 0m0.101s
—
200+0 records in
200+0 records out
104857600 bytes transferred in 1.319276 secs (79481164 bytes/sec)
real 0m1.321s
user 0m0.013s
sys 0m0.088s
————
3 servers diferentes
mis resultados son time dd if=/dev/zero of=file bs=512k count=200
200+0 registros leídos
200+0 registros escritos
104857600 bytes (105 MB) copiados, 0,219894 s, 477 MB/s
real 0m0.477s
user 0m0.007s
sys 0m0.163s
200+0 registros leídos
200+0 registros escritos
104857600 bytes (105 MB) copiados, 1,80153 s, 58,2 MB/s
real 0m1.830s
user 0m0.006s
sys 0m1.118s
HT 3000 , gentoo GNU/linux
Me gustaría añadir que dependerá en que sector del disco escriba estos ficheros.
Cuando hablamos de rendimiento no es lo mismo que escriba en el principio del disco que al final del disco, y de donde este en ese mismo momento del disco.
Podéis comprobarlo si ejecutáis la misma orden de nuevo, lo tiempos varias considerablemente.
Para mejorar el rendimiento del disco hay que tener en cuenta.
– Sistema de ficheros
– El mejor planificador para nuestro disco.
– Que sector de nuestro disco es más rápido.
– Estructurar correctamente las particiones.
Todo dependerá del numero de discos que tengamos y que vayamos hacer con ellos.
200+0 registros leídos
200+0 registros escritos
104857600 bytes (105 MB) copiados, 0,0852992 s, 1,2 GB/s
real 0m0.088s
user 0m0.000s
sys 0m0.084s
Disco SSD