martes, 13 de noviembre de 2007

Sysbench: Una herramienta para realizar pruebas de rendimiento

Hace un rato he tenido que hacer unas pruebas de rendimiento de un Mysql que almacenaba los datos en un volumen montado mediante iscsi. Buscando un poco en internete me he encontrado con esta herramienta, sysbench, la cual permite hacer pruebas de rendimiento de la utilización de algunos recursos hardware como la memoria, cpu y el disco por parte del sistema. También permite hacer testeos contra un mysql bien conectandose a este directamente al socket en local o haciéndolo en remoto indicando la maquina con el servidor Mysql.

Me ha gustado bastante, así que dejo una pequeña referencia rápida para su uso.

Para instalarlo se baja las fuentes y se compila.


wget http://dfn.dl.sourceforge.net/sourceforge/sysbench/sysbench-0.4.8.tar.gz
tar xvzf sysbench-0.4.8.tar.gz
cd sysbench-0.4.8
./configure --prefix=/opt/sysbench-0.4.8/
make
make install


Con esto tenemos el binario sysbench instalado en la carpeteta /opt/sysbench-0.4.8/bin .

En mi caso he hecho algunas pruebas de rendimiento del disco, este tipo de testeo se indica con el parametro --test=fileio


cd /directorio_a_probar/tmp-bench
sysbench --num-threads=20 --test=fileio --file-total-size=5G --file-test-mode=rndrw prepare
sysbench --num-threads=20 --test=fileio --file-total-size=5G --file-test-mode=rndrw run
sysbench --num-threads=20 --test=fileio --file-total-size=5G --file-test-mode=rndrw cleanup


Con prepare se crean los archivos con los que se haran las pruebas, por defecto 128. Todos los archivos no ocuparan más de 5Gb entre todos.

Con run se ejecuta las pruebas, que seran unas 6000 lecturas y 4000 escrituras en disco. El parametro --file-test-mode=rndrw que las operaciones de entrada/salida al disco están formadas por lecturas y escrituras aleatorias. Cuando termine de ejecutarse el testeo apareceran algunos datos estadísticos como el tiempo que se ha tardado.

Con cleanup borras los ficheros que se crearon con prepare.

Lo interesante es realizar varias pruebas de bench cambiando los parámetros, con más o menos archivos, cambiando el tipo de acceso, etc y ver como se comporta el sistema de archivos.


* Referencias:
Documentación de Sysbench
sysbench help

1 comentario:

Anónimo dijo...

Muy buen artículo. Estaba buscando algo para hacer benchmarking de mi mysql coporativo.

Te animamos a que sigas con tu blog.

Saludos

Por cierto, te recomiendo nuestro blog: www.cloudadmins.org