Probar el rendimiento de un servidor con JMeter

Probar el rendimiento de un servidor con JMeter de Apache, o lo que es lo mismo… hacer una prueba de carga también conocida como estrés de servidor.

Instalar Apache JMeter en Linux, ese es el título de un anterior artículo, en el cual explicábamos como instalar una herramienta especifica para lanzar pruebas de carga, Apache JMeter. Como ya comentamos en aquel post, tan solo era la primera parte de dos, primero instalamos y posteriormente configuramos.

El lanzamiento de Debian 11, nos obligó a frenar la salida del segundo artículo; bueno… ya hemos respirado profundamente dos o tres días, se nos ha pasado el sofoco y la emoción, así que lo prometido es deuda. Hoy vamos a ver con un simple ejemplo, como configurar JMeter para ejecutar estrés a un servidor de principio a fin.

Puede parecer un poco liosa, pero no es tan difícil si sigues los pasos que te indico. Lo único que me gustaría recomendarte es prudencia con los valores, en nuestro caso los usamos bajos a modo de ejemplo. También debes tener presente que con esta herramienta, puedes llegar a colapsar un servidor o VPS, haz pruebas solamente en tus propias máquinas, quedan restos y te van a pillar si lo usas como forma de ataque. Su misión es la siguiente:

  • Verificar los criterios de rendimiento especificados.
  • Validar la escalabilidad, fiabilidad y, uso de los recursos del sistema.
  • Confrontar dos o más sistemas para comparar rendimientos.
  • Identificar los errores del sistema con mucha carga de trabajo.

 

Probar el rendimiento de un servidor con JMeter

Si seguiste los pasos explicados en el post anterior, ya tienes JMeter instalado en tu sistema Linux. Abrimos la herramienta con el siguiente comando.

sudo /opt/apache-jmeter/bin/jmeter.sh

Ejemplo…

sergio@sololinux:~$ sudo /opt/apache-jmeter/bin/jmeter.sh
ago. 18, 2021 2:30:01 P. M. java.util.prefs.FileSystemPreferences$1 run
INFORMACIÓN: Created user preferences directory.
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

Aparece la interfaz gráfica de la herramienta.

Interfaz grafica de JMeter

Interfaz gráfica de JMeter

 

JMeter ya viene con un plan creado, pero sin datos ni valores, de todas formas lo aprovechamos. Los pasos a seguir para configurar JMeter correctamente, son…

  • Grupo de Hilos (subprocesos).
  • Valores predeterminados de las solicitudes HTTP.
  • Administrador de cookies.
  • Peticiones HTTP.
  • Escuchas HTTP.

 

Grupo de Hilos

Sigue todo lo que te indico paso a paso. Posiciona el puntero del ratón sobre Plan de pruebas, pulsa el botón derecho del morse para abrir el menú. Selecciona tal como la siguiente imagen: Añadir / Hilos (usuarios) / Grupo de Hilos.

Grupo de hilos

Grupo de hilos

 

Aquí debes configurar las propiedades de los hilos. Ten cuidado con los valores que insertas, no vayas a tirar tu vps o servidor. En nuestro caso usamos los valores 25 / 1 / 10.

  • Número de hilos: Número de usuarios que quieres simular. Cada hilo representa un usuario simulado.
  • Periodo de subida: Tiempo entre el inicio del primer hilo y el último hilo.
  • Contador del bucle: Cuantas peticiones debe enviar cada usuario simulado.
Configurar el grupo de hilos en JMeter

Configurar el grupo de hilos en JMeter

 

Valores predeterminados de las solicitudes HTTP

Ahora posiciona el ratón sobre «Grupo de Hilos», pulsa el botón derecho del mouse y la secuencia: Añadir / Elementos de configuración / Valores por defecto para peticiones HTTP.

Solicitud HTTP

Solicitudes HTTP

 

En valores por defecto asegúrate que estas en la opción Basic. Ajusta los valores indicados.

  • Protocolo: https
  • Nombre o IP: Nombre del host que resuelva, Dominio o dirección IP.
  • Puerto: 443 (por defecto de https, si es necesario lo cambias).
Valores de peticiones HTTP

Valores de peticiones HTTP

 

Administrador de cookies

Si tu sitio web genera cookies para los visitantes, agregamos su compatibilidad posicionando el ratón sobre «Grupo de Hilos», ahora pulsa el botón derecho del mouse y la secuencia: Añadir / Elementos de configuración / Gestor de Cookies HTTP.

Administrador de cookies

Administrador de cookies

 

No añadas ningún valor, déjalo por defecto tal como la siguiente imagen de ejemplo.

Configurar las cookies

Configurar las cookies

 

Peticiones HTTP

Posiciona el puntero del mouse sobre «Grupo de Hilos», ahora pulsa el botón derecho del ratón y la secuencia: Añadir / Muestreador / Petición HTTP.

Peticiones HTTP

Peticiones HTTP

 

En nuestro artículo de ejemplo, ya insertamos en valores predeterminados el protocolo, dirección y puerto, por tanto lo dejamos en blanco. Lo que si debes configurar es la ruta donde lanzar las peticiones, si lo dejas en «/», atacara sobre el index o página principal (puedes cambiar la ruta).

Configurar la ruta de las solicitudes 1

Configurar la ruta de las solicitudes y sí es necesaria la dirección.

 

Escuchas HTTP

Para conocer los resultados necesitamos escuchar las respuestas, agregamos lo que se conoce como Receptor. De nuevo colocamos el ratón sobre «Grupo de Hilos», pulsa el botón derecho del mouse y la secuencia: Añadir / Receptor / Backend Listener.

Receptor de escucha

Receptor de escucha

 

No es necesario modificar nada, déjalo como esta por defecto.

Configurar el cliente receptor

Configurar el cliente receptor

 

Guardar Plan

Para guardar el plan, pulsa Archivo en el menú superior y, en Guardar Plan de Pruebas como.

Guardar el Plan de pruebas

Guardar el Plan de pruebas

 

Te recomiendo que guardes los planes creados o modificados en Templates, así que busca la siguiente ruta: /opt/apache-jmeter/bin/templates. Cambia el nombre por defecto, en nuestro caso borramos el Backend y lo dejamos como «Listener.jmx». Pulsa en guardar.

Guardar el archivo del PLan

Guardar el archivo del PLan

 

Ejecutar prueba de carga

Creamos una carpeta para guardar los informes generados.

sudo mkdir /opt/apache-jmeter/reports/

Los propios desarrolladores desaconsejan provocar estrés a un servidor desde la propia GUI, debes usar la terminal de tu linux. Para lanzar la prueba según los criterios del artículo, ejecutamos el siguiente comando.

sudo /opt/apache-jmeter/bin/jmeter.sh -n -t /opt/apache-jmeter/bin/templates/Listener.jmx -l /opt/apache-jmeter/reports/testresult.jtl -e -o /opt/apache-jmeter/reports/

Explicamos los indicadores.

  • -n: Modo sin interfaz gráfica.
  • -t: Ruta del archivo del plan.
  • -l: Ruta del archivo de registro.
  • -e -o: Genera un archivo en formato HTML.

Ejemplo de uso.

sergio@sololinux:~$ sudo /opt/apache-jmeter/bin/jmeter.sh -n -t /opt/apache-jmeter/bin/templates/Listener.jmx -l /opt/apache-jmeter/reports/testresult.jtl -e -o /opt/apache-jmeter/reports/
[sudo] contraseña para sergio:        
Creating summariser <summary>
Created the tree successfully using /opt/apache-jmeter/bin/templates/Listener.jmx
Starting standalone test @ Wed Aug 18 15:23:42 EEST 2021 (1629289422555)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
Warning: Nashorn engine is planned to be removed from a future JDK release
summary =    250 in 00:00:11 =   23,4/s Avg:   943 Min:   314 Max:  5011 Err:     0 (0,00%)
Tidying up ...    @ Wed Aug 18 15:23:55 EEST 2021 (1629289435266)
... end of run
sergio@sololinux:~$ cd /opt/apache-jmeter/reports/
sergio@sololinux:/opt/apache-jmeter/reports$ dir
content  index.html  sbadmin2-1.0.7  statistics.json  testresult.jtl
sergio@sololinux:/opt/apache-jmeter/reports$

Dependiendo de las solicitudes de la prueba, el proceso tardará más o menos. Una vez concluya el proceso, abres tu navegador web favorito e insertas la siguiente URL.

/opt/apache-jmeter/reports/index.html

Imagen de ejemplo.

Informe.de .resultados de JMeter

Resultados de JMeter -Informe HTML

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Probar el rendimiento con JMeter.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido