www.linuxero.es

Si te gusta el software libre, este es tu sitio.

Test de rendimiento en Alfresco

Introducción

Con este artículo vamos a ver como se puede realizar un test de rendimiento en Alfresco simulando el uso concurrente de la herramienta.

JMeter Es una aplicación de escritorio Open Source escrita completamente en Java por el equipo Apache Jakarta Project (http://jakarta.apache.org) para realizar pruebas de carga para análisis de rendimiento y verificación de funcionalidades de aplicaciones web con muchas otras funciones.

Funciona de cara al servidor como si accediera un navegador o muchos a la vez, sin que exista en realidad ninguno ejecutándose por detrás. JMeter captura todas las peticiones realizadas al servidor desde el “Banco de pruebas” y las introduce en el “Plan de pruebas” para ser reproducidas posteriormente.

Estas son las características principales de JMeter:

- Peticiones HTTP y FTP para servidores de aplicaciones web y consultas JDBC para bases de datos.

- Interfaz ligera con Swing y de diseño sencillo, y total portabilidad gracias a Java. Cacheo, análisis y reproducción de resultados y ejecución multihilo (multithreading). Permite pruebas concurrentes multihilo y pruebas simultáneas de diferentes funciones por grupos separados de hilos.

- Capacidad extensible de análisis por Samplers plugins, estadísticas por Timers plugins y personalización por Visualization plugins. Funcionalidad para manipul ación y entrada dinámica de datos. Samplers programables por script, soporta BeanShell y lenguajes BSF-compatible.

Instalación

La instalación es muy sencilla:

En sistemas operativos Linux/Unix abrimos un terminal como root:

# cd /opt(o el directorio donde lo hayamos descargado)

# ls jakarta-jmeter-2.4.tgz 
jakarta-jmeter-2.4.tgz
# mkdir jakarta-jmeter-2.4
# tar -xvzf jakarta-jmeter-2.4.tgz -C jakarta-jmeter-2.4
# cd  jakarta-jmeter-2.4/bin

# ./jmeter


Inicio del plan

Necesitamos un usuario para simular las acciones que se tendrán que acometer para el test de rendimiento. Vamos a partir con que tenemos un usuario llamado auditoria.alfresco.

Preparación del banco de trabajo

Vamos a añadir un elemento que nos servirá de proxy para captar las urls donde posteriormente JMeter entrará como si fuera un usuario.

Seleccionamos “Banco de Trabajo” y con el botón derecho del ratón seleccionamos “Añadir”, “Elementos NoDePrueba” y “Servidor Proxy HTTP”. Cambiamos “Puerto” por por ejemplo “8091”. Seleccionar la casilla de verificación “Recuperar Todos los Recursos Empotrados de Archivos HTML”. En la casilla Controlador objetivo marcamos “ Stepping Thread Group”.

En el campo “URL patrones a excluir” añadimos los siguientes:

  • .*\.jpg
  • .*\.png
  • .*\.css
  • .*\.gif

Pulsamos sobre banco de trabajo y le damos a “Guardar plan de pruebas como” para no tener que realizar la configuración de nuevo al cerrar el JMeter.

Plugin Jmeter

Antes de realizar el plan de pruebas vamos a utilizar un plugin para jmeter que nos va a servidor para añadir la motorización del servidor y lanzar una prueba que emula un entorno mas real que con el Stepping Thread Group por defecto que trae jmeter.

1. Nos descargamos el plugin desde el siguiente enlace:

http://code.google.com/p/jmeter-plugins/

2. Este paquete trae un jar llamado “JmeterPlugins.jar” que hay que meterlo dentro del directorio “<JMETER_HOME>/lib/ext”. Al copiarlo a este directorio ya tenemos todas las características de este plugin para poder usarlas.

3. Si queremos monitorizar mientras lanzamos el plan de pruebas la CPU, RAM,etc del servidor donde está alfresco podemos utilizar un agente que trae. Para ello copiamos el directorio “serverAgent” en el servidor y ejecutamos el archivo “startAgent.bat” si el servidor es windows o “startAgent.sh” si el servidor es Linux. Es necesario abrir el puerto 4444 que es el que utiliza por defecto para realizar la motorización de los servicios.

Preparar plan de pruebas

En esta parte vamos a preparar todos los elementos que necesitamos para realizar el test de rendimiento y que posteriormente nos darán los datos para analizar.

  1. Seleccionamos “Plan de Pruebas” y con el botón derecho del ratón seleccionamos “Añadir”, “Stepping Thread Group”. Este elemento nos servirá configurar el número de hilos a lanzar y su comportamiento.
  2. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Elemento de Configuración” y “Valores por Defecto para Petición HTTP”. Introducimos en “Nombre de Servidor o IP” el servidor que ejecuta Alfresco y “Puerto” el “8080” o el que utilice.
  3. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Elemento de Configuración” y “Elemento de Configuración de Login”. Introducimos en “Nombre de Usuario” el usuario local creado y “Password” la especificada. Con este elemento podemos simular el acceso de un usuario. Si nos proporcionan un usuario de LDAP para las pruebas, no será necesario la creación del usuario local y usaremos “Valores por defecto Petición LDAP” o “Valores por defecto Petición Extendidad LDAP”.
  4. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Temporizador” y “Temporizador Aleatorio Gaussiano”.
  5. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” e “Informe Agregado”.
  6. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Summary Report”.
  7. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Ver Resultados en Árbol”.Seleccionar la casilla de verificación “Escribir en Log Sólo Errores”.
  8. Seleccionamos “Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Gráfico de Resultados”.
  9. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Servers Performance Monitoring”. Le cambiamos el nombre por “CPU”, marcamos el elemento “CPU” y añadimos un nuevo servidor con la ip del servidor donde se encuentra alfresco.
  10. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Servers Performance Monitoring”. Le cambiamos el nombre por “memoria”, marcamos el elemento “Memory” y añadimos un nuevo servidor con la ip del servidor donde se encuentra alfresco
  11. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Servers Performance Monitoring”. Le cambiamos el nombre por “Swap”, marcamos el elemento “Swap” y añadimos un nuevo servidor con la ip del servidor donde se encuentra alfresco
  12. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Servers Performance Monitoring”. Le cambiamos el nombre por “Disks I/O”, marcamos el elemento “Disks I/O” y añadimos un nuevo servidor con la ip del servidor donde se encuentra alfresco.
  13. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Servers Performance Monitoring”. Le cambiamos el nombre por “Networks I/O”, marcamos el elemento “Networks I/O” y añadimos un nuevo servidor con la ip del servidor donde se encuentra alfresco.
  14. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Active Threads Over Time” para ver los hilos en ejecución en cada momento.
  15. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Transactions per Second” para ver las transacciones por segundo.
  16. Seleccionamos “ Stepping Thread Group” y con el botón derecho del ratón seleccionamos “Añadir”, “Listener” y “Response Times Over Time” para ver los tiempos de respuesta.
  17. Guardamos el plan de pruebas desde “Archivo” “guardar plan de pruebas como”. De esta forma para posteriores tests solo tenemos que abrir el plan de pruebas sin tener que crearlo de nuevo.

Nuestras pruebas se centrarán en realizar la misma tarea recogida en un mismo Stepping Thread Group, pudiendo ser ejecutados varios grupos a la vez, si se desea, introduciendo diferentes grupos en el mismo “Plan de Pruebas” y en el “Servidor Proxy HTTP” del “Banco de Trabajo” seleccionando el “Stepping Thread Group” que recogerán los datos en el campo “Controlador Objetivo”.

Preparar navegador

  1. Abrimos un navegador, en nuestro caso Internet Explorer
  2. En nuestro IE, Herramientas -> Opciones de internet -> Conexiones -> configuración LAN
  3. En el panel de proxy, especificar la dirección ‘localhost’ y el puerto (el que hemos configurado en el proxy de JMeter ej. 8091)
  4. Eliminar la parte donde nos dice que no haga proxy en localhost o 127.0.0.1.

    Fase de recogida de datos

  1. Seleccionar “Servidor Proxy HTTP” y pulsar botón “Arrancar” para comenzar la captura de datos desde el navegador e introducimos en el navegador la URL de Alfresco.
  2. Introducimos los datos de login, el idioma y aceptamos.
  3. Seleccionamos el espacio personal del usuario y creamos el espacio “prueba”, entramos en este. Volvemos al espacio personal del usuario y eliminamos el espacio de prueba.
  4. Seleccionamos “Desconectar” y habremos acabado la prueba.
  5. Cerramos el navegador y seleccionamos el botón “Parar” en “Servidor Proxy HTTP” del “Banco de Trabajo”.

    Fase de ejecución

Pulsamos CTRL + R para arrancar el proceso o nos vamos al menu lanzar y pulsamos sobre Arrancar.

Para explorar las posibilidades del test es posible variar los valores en “Stepping Thread Group”. Se introduce en el campo “This group will start …..threds” la cantidad total de usuarios virtuales que correrán las pruebas. En el campo “First, wait for” se indica cuantos segundos se debe esperar para arrancar la creación de los hilos. En los campos “Then start”- “threads every” se indica que porción de usuarios virtuales se creara cada cuantos segundos, luego se setea la cantidad de segundos que estarán operando los 20 o “N” usuarios virtuales en el campo “Then work for”. Por ultimo se setea el campo “Finally, stop”-”threads every” para indicar cuanto usuarios virtuales se deben bajar cada cuantos segundos.

Cuando en el “Gráfico de Resultados” los valores de rendimiento, media y mediana del test no varían significativamente, se habrá encontrado los valores óptimos aproximados del test, siendo el número de muestras cada una de las peticiones que intervienen entre cliente y servidor.

Resultados

Gráfico de resultados

El Gráfico de Resultados que integra Jmeter es generada con los tiempos de respuestas de todas las muestras y una leyenda expresados en milisegundos. Los cálculos incluyen retrasos añadidos al test u ocurridos en el procesamiento. Podemos consultar estos datos más exhaustivamente en los gráficos “Summary Report” e “Informe Agregado”.

Última muestra – Latest Sample – Es el tiempo consumido por la muestra actual en negro

Media – Average – Media actual de todas las muestras en azul

Mediana – Median – Valor medio

Desviación – Deviation – Desviación estándar actual en rojo (una medida de la variante)

Rendimiento (Muestras por minuto) – Throughput – Media de muestras por minuto manejadas por el servidor en verde


Podemos observar el comportamiento del servidor consultando los gráficos de CPU, Memoria, Swat, Disk I/O y Netowrk I/O.

También podemos consultar las transacciones por segundo de cada uno de los recursos a los que se ha accedido con el gráfico “Transactions per Second”.

O podemos observar el tiempo de respuesta de cada petición en cada momento en el gráfico “Response Times Over Time”

 



About these ads

Una respuesta a “Test de rendimiento en Alfresco

  1. Pingback:Jmeter | TagHall

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: