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