Raspberry Pi: benchmark de sistema con Sysbench
Si tienes planeado realizar algo de overclock a tu Raspberry Pi o si quieres simplemente saber cómo se compara en términos de velocidad con otros sistemas, comprobar su estabilidad… te interesa probar una suite de benchmarking como la de Sysbench.
Acerca de Sysbench
Se trata de una herramienta de pruebas de rendimiento, modular y con ejecución multi-hilo, diseñada para extraer una visión rápida de la velocidad de un equipo. Está aplicación de benchmarking está enfocada a pruebas para servidores de base de datos, pruebas de procesador central, test de transmisión de memoria (ancho de banda) o benchmark de lectura/escritura de disco, entre otros.
El atractivo de una herramienta como esta es doble: por un lado, conocer las limitaciones de nuestro sistema (en mi caso una «Raspi 3» para saber qué usos son viables y cuáles no lo son. Por otro, es una excelente suite para probar la estabilidad y temperatura de nuestro equipo, dado que las Raspberries tienden a calentarse de lo lindo si no les ponemos un disipador (o incluso un sistema más avanzado).
Benchmark en Raspberry Pi con Sysbench
El manejo de la herramienta es bastante sencillo. Voy a enseñaros algunos ejemplos de uso de Sysbench dentro de un sistema Debian/Ubuntu.
Instalar Sysbench
Ejecutaremos la siguiente orden:
apt-get install sysbench
Manual de la herramienta:
man sysbench
Pruebas de CPU
Para lanzar un test sobre el procesador, escribiremos lo siguiente:
sysbench --test=cpu --cpu-max-prime=20000 run
Esto lanzará un hilo único de cálculo de números primos, en este caso establecido en 20000. La orden solo se asocia a un procesador individual, de forma que si queremos por ejemplo usar el 100% de la CPU tendríamos que especificarlo:
sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
Pruebas de memoria
Para poder simular una carga en la memoria y ver sus tasas de transferencia, Sysbench empleará un búfer (establecido mediante –memory-block-size) que por defecto es de 1 Kb y durante cada ejecución leerá o escribirá dicha memoria (–memory-oper por defecto es «escribir») de una forma aleatoria o secuencial, siendo el modo aleatorio el predefinido.
sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run
Esta prueba es muy sensible al tamaño del bloque especificado, por lo que si en lugar de 1M (Mb) establecemos 1k, la ejecución se prolongará bastante, requiriendo más operaciones de escritura o lectura por segundo.
Más información – Hacer benchmark de disco en Linux con Fio
Pruebas de almacenamiento
Para conocer el rendimiento del disco y ver sus tasas de transferencia, lectura o escritura, utilizaremos también Sysbench con la opción –test=fileio.
Es importante recordar la importancia de crear un archivo grande, bastante más grande que la memoria RAM del aparato. En caso de no hacerlo, el sistema utilizará la memoria interna para «cachear» los datos y esto falseará los resultados obtenidos.
Preparar el test: empezaremos por crear un archivo que será el sometido a las pruebas posteriores.
sysbench --test=fileio --file-total-size=50G prepare
Donde «50» deberá ser mayor o menor en función del sistema de almacenamiento a comprobar. Para una Raspberry Pi 3 yo lo dejaría en algo entre los 6 y los 12 GB, teniendo en cuenta el tamaño medio de las tarjetas SD empleadas..
Ahora lanzaremos el test. Fijaos en donde dice «rndrw» pues es en –file-test-mode donde especificaremos si es lectura o escritura, secuencial o aleatoria.
sysbench --test=fileio --file-total-size=50G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
Obtendremos una serie de estadísticas cuando finalice. Nos fijaremos sobre todo en:
Read xxxxMb Written xxxMb Total transferred xxxxxxMb (XXXXXKb/sec)
No debemos olvidarnos de eliminar el archivo creado ex-profeso para la prueba, con este comando:
sysbench --test=fileio --file-total-size=50G cleanup
Ejecución en bloques o Batch Mode
Finalmente, Sysbench tiene una característica útil que es la ejecución en bloque. Esto nos permite conocer, además de las estadísticas finales de una prueba concreta, las diferencias en sus ejecuciones intermedias en un periodo definido. Así sabremos de qué forma evoluciona el rendimiento de un sistema a lo largo del tiempo.
Para esto existen las opciones –batch y –batch-delay. Con la opción «delay» estableceremos el tiempo de espera para la ejecución siguiente.
Recordad que este tipo de pruebas las podéis realizar con cualquier sistema soportado, no solo Raspberries 😉
Categories
hardware, Herramientas, Linux, raspberry pi, Software, Tutoriales
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.