Javier Barber
Senior Sysadmin Freelancer
PRUEBAS DE RENDIMIENTO DE DISPOSITIVOS DE ALMACENAMIENTO
Programas a usar:
– cp
– dd
– hdparm
– Bonnie++
* 1ª prueba – Resultados de lectura con hdparm:
#hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 304 MB in 3.01 seconds = 100.84 MB/sec
* 2ª prueba – Resultados obtenidos con Bonnie++:
# bonnie++ -u root -d /media/disk/bonnie/ > resultados_bonnie
– La opción -u es obligatoria si lo ejecutamos como root
– La opción -d especifica el directorio en el dispositivo que vamos a testear
– Bonnie++ necesita el doble de la RAM disponible en disco para ejecutarse
– Podemos convertir la salida de Bonnie++ a HTML con la herramienta bon_csv2html incluida en el paquete de Bonnie++:
$ echo amule,1G,7235,96,14431,29,6365,13,8660,94,15455,14,114.1,1,16,10180,98,+++++,+++,15966,99,9428,90,+++++,+++,16314,99 | bon_csv2html > bonnie_amule.html
* 3ª Prueba – Creación de un fichero muy grande (10 GB p.ej.) con distintos tamaños de bloques:
TAMAÑO BLOQUE CANTIDAD DE BLOQUES
1024 10000000
2048 5000000
4096 2500000
8192 1250000
16384 625000
32768 312500
Lo podemos hacer con un script como el siguiente:
#!/bin/bash
dd if=/dev/zero of=/media/disk/test bs=1024 count=10000000
rm /media/disk/test
dd if=/dev/zero of=/media/disk/test bs=2048 count=5000000
rm /media/disk/test
dd if=/dev/zero of=/media/disk/test bs=4096 count=2500000
rm /media/disk/test
dd if=/dev/zero of=/media/disk/test bs=8192 count=1250000
rm /media/disk/test
dd if=/dev/zero of=/media/disk/test bs=16384 count=625000
rm /media/disk/test
dd if=/dev/zero of=/media/disk/test bs=32768 count=312500
rm /media/disk/test
Las velocidades irán saliendo por stdout a medida que se van creando los ficheros aunque también podemos redirigirlo a un fichero.
* 4ª Prueba – Creación, copia y borrado de ficheros grandes, medianos y pequeños con distintos tamaños de bloque:
Para esta prueba se han utilizado los siguientes ficheros:
– 1 fichero de 2 GB
– 1000 ficheros de 1 MB
– 2000 ficheros de 512 KB
– 15000 ficheros de 64 KB
Creación:
– 1 fichero de 2 GB:
$ time dd if=/dev/zero of=test bs=1024 count=2000000
– 1000 ficheros de 1 MB (Total 1 GB)
$ time for i in $(seq 1 1000); do dd if=/dev/zero of=fichero$i bs=1024 count=1024; done
– 2000 ficheros de 512 KB (Total 1 GB)
$ time for i in $(seq 1 2000); do dd if=/dev/zero of=fichero$i bs=512 count=1024; done
– 15000 ficheros de 64 KB (Total 1 GB)
$ time for i in $(seq 1 15000); do dd if=/dev/zero of=fichero$i bs=64 count=1024;done
Copiado:
$ time cp fichero2GB fichero2GBcopia
$ time cp ficheros1MB/* ficheros1MBcopia/
$ time cp ficheros512KB/* ficheros512KBcopia/
$ time cp ficheros64KB/* ficheros64KBcopia/
Borrado:
$ time rm ficheros2GB
$ time rm ficheros1MB/*
$ time rm ficheros512KB/*
$ time rm ficheros64KB/*