martes, 4 de septiembre de 2012

Análisis de rendimiento de servidores GNU/Linux (Parte I)

De la serie: Manos a la obra



En unos de los proyectos de los que me encargo se ha pedido que se estudie la posibilidad de utilizar un acelerador de web para el sitio corporativo (posteriormente se documentará este proceso en otra entrada). Este acelerador estará instalado sobre un servidor virtual, concretamente sobre VMWare ...

... si, no es software libre (que se le va ha hacer, sobre esta decisión no tengo capacidad de actuar, aunque un poco si sobre todo la pila de software).


La primer tarea que se ha a realizar es la verificación de si, por el hecho de ser un servidor virtual, se puede caer en una perdida de rendimiento, este es el objetivo de esta entrada. Las planificación de las tareas será la siguiente:

  1. Selección del hardware para la comparación.
  2. Instalación y configuración del sistema operativo en los servidores, evidentemente GNU/Linux.
  3. Instalación y configuración del software de estudio de rendimiento y revisión de configuración.
  4. Definición de los juegos de pruebas a realizar.
  5. Ejecución de la prueba.
  6. Análisis de resultados y conclusiones.
Una vez definida la planificación, se comienza en su realización ...


Selección del hardware para la comparación

La elección de la configuración del servidor virtual que se realiza es de 2 procesadores, 4GB de RAM y un espacio de disco de 53GB. No se tiene capacidad para la selección del tipo de procesador, de la velocidad de la RAM, ni del número de revoluciones del disco ya que se utiliza el equipo estándar de los anfitriones (que raro queda esto dicho en español, normalmente se utiliza host). Se enlaza el fichero con la configuración completa del hardware virtual.

Para la comparación se ha utilizado un servidor (en realidad es un PC) físico de HP Compaq 8200. Se enlaza también el fichero con la configuración completa del hardware del PC.


Instalación y configuración del sistema operativo en los servidores, evidentemente GNU/Linux

No creo necesario describir la instalación de Debian ya que existen muchos tutoriales de como hacerlo (un ejemplo:manual oficial de Debian, otro ejemplo). Simplemente añadir que se ha escogido la versión de testing (aquí información de las versiones de Debian) que a fecha de escritura de este articulo está en versión Beta 1. Además, la instalación se ha realizado sin entorno gráfico ya que no es necesario por ser un servidor.

Tomo nota en la lista de tareas para la documentación una mi guia personal de: ¿Que hacer después de instalar Debian Wheezy con xfce4?


Instalación y configuración del software de estudio de rendimiento y revisión de configuración

Las tareas de este apartado son simples de realizar, las aplicaciones que se van a utilizar son libres (licencia GPL) y están disponibles en los repositorios de Debian: lshw y sysbench. Para su instalación:

aptitude install lshw sysbench

Se aceptan todas las dependencias y los paquetes quedan instalados



Definición de los juegos de pruebas a realizar

Centraremos la atención en los juegos de prueba que permite realizar la herramienta  sysbench:

  • Cpu
  • Entrada salida de ficheros (disco)
  • Gestión de threads por el planificador (hilos de ejecución y bloqueos)
  • Mutex
Y el juego de pruebas consistirá en la ejecución de los test con los parámetros fijados y posterior comparación y análisis de ellos.

Los parámetros con los que se ejecutarán las pruebas son los siguientes:
  • CPU: sysbench --test=cpu --cpu-max-prime=20000 run
Este test permitirá valorar el rendimiento que consigue la CPU medido en segundos que necesita para calcular los números primos de los 20000 primeros números naturales.
  • Entrada salida de ficheros:
    • sysbench --test=fileio --file-total-size=15G prepare
    • sysbench --test=fileio --file-total-size=15G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
    • sysbench --test=fileio --file-total-size=15G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 cleanup
Esta prueba permitira conocer la tasa de transferencia media del disco para operaciones combinadas de entrada/salida.
  • Threads: sysbench --num-threads=128 --test=threads --thread-yields=200 --thread-locks=4 run
Con este test se analizará el rendimiento del servicio de planificador o scheduler [en] del S.O. cuando está sometido a una situación de alta carga.


  • Mutex: sysbench --num-threads=640 --test=mutex --mutex-num=4096 --memory-scope=global --memory-total-size=100G  --memory-oper=write run
El test consiste en el incremento de una variable global mediante un 'cierre de exclusión mutua' (he tenido que buscar la traducción al castellano y sinceramente no la habia escuchado nunca) o en inglés 'mutex lock' por el número de threads que se le marque con el modificador 'num-threads'. Nota: El resto de parámetros son los de defecto, los he documentado simplemente por claridad.





Hasta aquí la primera parte del artículo 'Análisis de rendimiento de servidores GNU/Linux'.

En la siguiente y última parte se documentarán las dos últimas tareas que son la ejecución de la prueba y el análisis de resultados y conclusiones.

Gracias por vuestra atención.




No hay comentarios:

Publicar un comentario