Skip to main content

Comprobar el rendimiento (Benchmark) de un sistema en Linux

Habrá ocasiones en las que queramos comprobar el rendimiento de un PC o de una máquina virtual. En los repositorios podemos encontrar una poderosa aplicación que nos permite precisamente hacer esto. Su nombre es sysbench y podemos instalarla desde consola en sistemas debian – ubuntu linux con la siguiente orden:

sudo apt-get install sysbench

Test de CPU

Para comprobar el rendimiento de la CPU basta con el siguiente comando:

sysbench --test=cpu --cpu-max-prime=20000 run

En este comando le indicamos que calcule 20000 números primos. Podemos indicarle un número mayor o menor para hacer más o menos precisa la prueba. El resultado del test nos muestra el tiempo que emplea en calcularlos.

Test de ficheros

En este test se comprueba el rendimiento de nuestro sistema de ficheros. Este test depende de 3 etapas. La primera preparamos los ficheros con los que haremos el test. Después haremos el test propiamente dicho. Y finalmente borraremos los ficheros de la prueba.

Creamos los ficheros con:

sysbench --test=fileio --file-total-size=100G prepare

Ejecutamos el test:

sysbench --test=fileio --file-total-size=100G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

Y finalmente borramos los ficheros:

sysbench --test=fileio --file-total-size=100G cleanup

En esta prueba el valor relevante es la velocidad de acceso indicado en KB/sec. Señalar que se usa un valor alto de 100Gb del disco para evitar el uso de la cache del sistema. Pero podemos usar otros valores que consideremos oportunos. El tiempo de ejecución de la prueba sería de 300 segundos aunque podemos cambiarlo por lo que consideremos.

Test de BB.DD.

Esta prueba me parece muy valiosa ya que pone a prueba la base de datos MySQL. Al igual que en la prueba del sistema de ficheros aquí requerimos de tres pasos. Primero la creación de la base de datos. Luego la prueba propiamente dicha. Y finalmente el borrado de la base de datos usada. Aquí deberemos aportar los datos de acceso a la base de datos, como usuario (en el ejemplo root) y su contraseña.

Creamos la bb.dd.:

sysbench --test=oltp --oltp-table-size=1000 --mysql-db=test --mysql-user=root --mysql-password=contrasena prepare

Después nos disponemos a hacer la prueba con el comando:

sysbench --test=oltp --oltp-table-size=1000 --mysql-db=test --mysql-user=root --mysql-password=contrasena --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

Y borramos la base de datos con:

sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=contrasena cleanup

En esta prueba el valor relevante es el número de transacciones totales y cuantas realiza el servidor en un segundo.

Conclusiones

Con la aplicación podemos valorar el rendimiento de nuestro sistema o mejor, el de un servidor remoto, sea físico o virtualizado. Esta herramienta permite también probar otros componentes del sistema, pero estos, la cpu, disco y base de datos, creo son los más interesantes para un servidor de aplicaciones web.

Debemos recordar que si el sistema que pretendemos poner a prueba esta en producción, con la carga de otras funciones los resultados no serán nada concluyentes.

Disponemos de la documentación accesible en el manual del sistema mediante el cual podemos conocer la totalidad de opciones disponibles en la herramienta.

man sysbench

Los comandos mostrados han sido probados en un pequeño servidor virtual con Ubuntu Server 12.04.

Actualizaciones en WordPress sin FTP

Sucede en algunos servicios de alojamiento web, por ejemplo el que uso para pruebas, que cuando queremos actualizar los plugins, temas, o el propio CMS, nos solicita los datos de acceso por FTP.

Cuando queremos hacer la actualización desde el propio WordPress, la aplicación trata de comprobar si la carpeta old-content tiene los permisos necesarios para poder escribir en ella. Si no es así muestra la pantalla de dialogo para mediante FTP tener acceso. Si tiene los permisos adecuados descarga el archivo en una carpeta temporal en old-content, los descomprime y seguidamente lo instala.

¿cómo resolverlo?

El usuario que ejecuta el servidor web debe tener acceso al directorio. Este normalmente será www-data. El comando siguiente debería valer para hacer que el directorio de WordPress pase a www-data:

sudo chown -R www-data directorio-wp

Donde directorio-wp será directorio que alberga la instalación de WordPress.

¿aún no funciona?

En ese caso podemos editar el archivo de configuración wp-config.php alojado en la raíz de nuestra instalación de WordPress y añadir la siguiente constante:

define('FS_METHOD','direct');

Esto hace que WordPress se salte la comprobación de escritura de old-content y pase directamente a actualizar. Si el directorio carece de los permisos adecuados las actualizaciones igualmente fallarán.