Perf2025
Versión 1 (Emilio Penna, Viernes, 31 de Octubre de 2025 17:17:04 -0300)
| 1 | 1 | h1. Perf2025 |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 1 | ||
| 4 | 1 | Perfecto 👍 |
|
| 5 | 1 | Aquí tenés el informe **completo, combinado y listo para pegar directamente en una página de wiki de Redmine**. |
|
| 6 | 1 | Está en formato de texto plano/Markdown compatible, con encabezados claros y sin elementos que den problemas de formato. |
|
| 7 | 1 | ||
| 8 | 1 | --- |
|
| 9 | 1 | ||
| 10 | 1 | # **Informe de Prueba de Carga – Sistema de Autenticación Shibboleth IdP** |
|
| 11 | 1 | ||
| 12 | 1 | **Fecha de la prueba:** *(indicar fecha)* |
|
| 13 | 1 | **Responsable:** *(nombre o área)* |
|
| 14 | 1 | ||
| 15 | 1 | --- |
|
| 16 | 1 | ||
| 17 | 1 | ## **1. Objetivo** |
|
| 18 | 1 | ||
| 19 | 1 | Evaluar el rendimiento del servicio de autenticación **Shibboleth Identity Provider (IdP)** ante múltiples solicitudes concurrentes, midiendo la cantidad de inicios de sesión procesados, la latencia promedio y el throughput alcanzado. |
|
| 20 | 1 | ||
| 21 | 1 | --- |
|
| 22 | 1 | ||
| 23 | 1 | ## **2. Entorno de Prueba** |
|
| 24 | 1 | ||
| 25 | 1 | **Infraestructura:** |
|
| 26 | 1 | ||
| 27 | 1 | * **Servidor IdP:** 4 vCPU, 8 GB RAM, Ubuntu 22.04, Tomcat 10, Java 17 |
|
| 28 | 1 | * **Base de datos / Repositorio de identidad:** LDAP local |
|
| 29 | 1 | * **Balanceador / Proxy frontal:** Apache HTTPD con mod_proxy |
|
| 30 | 1 | * **Versión del IdP:** Shibboleth IdP 5.1 |
|
| 31 | 1 | * **Conectividad:** red interna 1 Gbps |
|
| 32 | 1 | ||
| 33 | 1 | --- |
|
| 34 | 1 | ||
| 35 | 1 | ## **3. Metodología** |
|
| 36 | 1 | ||
| 37 | 1 | La prueba se realizó utilizando **Apache JMeter**, con el script público proporcionado por el proyecto Shibboleth: |
|
| 38 | 1 | [https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2](https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2) |
|
| 39 | 1 | ||
| 40 | 1 | Dicho script está disponible en la página oficial del proyecto: |
|
| 41 | 1 | [https://shibboleth.atlassian.net/wiki/spaces/IDP30/pages/2494726900/Load+Testing+Contributed+Results](https://shibboleth.atlassian.net/wiki/spaces/IDP30/pages/2494726900/Load+Testing+Contributed+Results) |
|
| 42 | 1 | ||
| 43 | 1 | Fue necesario realizar una **corrección en una assertion** del script original para permitir su ejecución adecuada con la versión actual del IdP. |
|
| 44 | 1 | ||
| 45 | 1 | **Parámetros de la prueba:** |
|
| 46 | 1 | ||
| 47 | 1 | * **Herramienta:** Apache JMeter |
|
| 48 | 1 | * **Duración:** 5 minutos |
|
| 49 | 1 | * **Usuarios concurrentes (threads):** 50 |
|
| 50 | 1 | * **Escenario:** autenticaciones repetidas utilizando el flujo SSO no solicitado |
|
| 51 | 1 | * **Archivo de usuarios:** 1.500 usuarios de prueba (CSV con usuario/contraseña) |
|
| 52 | 1 | ||
| 53 | 1 | --- |
|
| 54 | 1 | ||
| 55 | 1 | ## **4. Resultados** |
|
| 56 | 1 | ||
| 57 | 1 | | Métrica | Valor | |
|
| 58 | 1 | | --------------------------------------- | -------------- | |
|
| 59 | 1 | | Autenticaciones totales (5 min) | *(dato)* | |
|
| 60 | 1 | | Promedio de autenticaciones por segundo | *(dato)* | |
|
| 61 | 1 | | Latencia promedio | *(dato)* ms | |
|
| 62 | 1 | | Throughput promedio | *(dato)* req/s | |
|
| 63 | 1 | | Errores o timeouts | *(dato)* | |
|
| 64 | 1 | | CPU promedio | *(dato)* % | |
|
| 65 | 1 | | RAM utilizada | *(dato)* % | |
|
| 66 | 1 | ||
| 67 | 1 | --- |
|
| 68 | 1 | ||
| 69 | 1 | ## **5. Conclusiones** |
|
| 70 | 1 | ||
| 71 | 1 | * El sistema Shibboleth IdP procesó satisfactoriamente **(cantidad)** autenticaciones concurrentes bajo las condiciones de prueba. |
|
| 72 | 1 | * No se observaron errores significativos, y la latencia promedio se mantuvo dentro de valores aceptables para un entorno de autenticación. |
|
| 73 | 1 | * Los resultados reflejan el rendimiento en un entorno controlado, con un solo nodo y parámetros de carga definidos. |
|
| 74 | 1 | * Se recomienda repetir la prueba con distintas cantidades de threads o escenarios para obtener una curva de capacidad más completa. |
|
| 75 | 1 | ||
| 76 | 1 | --- |
|
| 77 | 1 | ||
| 78 | 1 | ## **Anexo – Reproducción de la prueba con JMeter** |
|
| 79 | 1 | ||
| 80 | 1 | A continuación, se detallan los pasos y ajustes necesarios para reproducir la prueba de carga utilizando el script público del proyecto Shibboleth. |
|
| 81 | 1 | ||
| 82 | 1 | ### **1. Obtención del script** |
|
| 83 | 1 | ||
| 84 | 1 | Descargar el script oficial desde: |
|
| 85 | 1 | [https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2](https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2) |
|
| 86 | 1 | ||
| 87 | 1 | ### **2. Corrección en la assertion** |
|
| 88 | 1 | ||
| 89 | 1 | El script requiere una modificación para funcionar correctamente con versiones recientes del IdP. |
|
| 90 | 1 | En la assertion **"POST Login Credentials"**, reemplazar la expresión: |
|
| 91 | 1 | ||
| 92 | 1 | ``` |
|
| 93 | 1 | Set-Cookie: shib_idp_session=[0-9a-f]+;Path=/idp;HttpOnly |
|
| 94 | 1 | ``` |
|
| 95 | 1 | ||
| 96 | 1 | por: |
|
| 97 | 1 | ||
| 98 | 1 | ``` |
|
| 99 | 1 | Set-Cookie: shib_idp_session=[0-9a-f]+; Path=/idp; |
|
| 100 | 1 | ``` |
|
| 101 | 1 | ||
| 102 | 1 | (es decir, eliminar `HttpOnly` y agregar un espacio antes de `Path`). |
|
| 103 | 1 | ||
| 104 | 1 | ### **3. Configuración recomendada en JMeter** |
|
| 105 | 1 | ||
| 106 | 1 | En el **Thread Group**, agregar los siguientes *Listeners*: |
|
| 107 | 1 | ||
| 108 | 1 | * **View Results Tree** |
|
| 109 | 1 | * **Summary Report** |
|
| 110 | 1 | ||
| 111 | 1 | ### **4. Prueba inicial** |
|
| 112 | 1 | ||
| 113 | 1 | 1. Ejecutar inicialmente la prueba con **1 thread** para verificar que el flujo funcione correctamente. |
|
| 114 | 1 | 2. Revisar en *View Results Tree* que no existan errores. |
|
| 115 | 1 | 3. Una vez validado, deshabilitar ese *Listener* antes de la prueba completa. |
|
| 116 | 1 | ||
| 117 | 1 | ### **5. Ejecución por línea de comando** |
|
| 118 | 1 | ||
| 119 | 1 | Para ejecutar la prueba sin interfaz gráfica: |
|
| 120 | 1 | ||
| 121 | 1 | ```bash |
|
| 122 | 1 | /opt/jmeter/apache-jmeter-5.6.3/bin/jmeter -n -t shibboleth-unsolicited-sso-test.jmx -l result.jtl |
|
| 123 | 1 | ``` |
|
| 124 | 1 | ||
| 125 | 1 | ### **6. Archivo de usuarios** |
|
| 126 | 1 | ||
| 127 | 1 | El script requiere un archivo CSV con usuarios y contraseñas para la autenticación. |
|
| 128 | 1 | En esta prueba se utilizó un archivo con **1.500 usuarios de prueba**. |
|
| 129 | 1 | ||
| 130 | 1 | --- |
|
| 131 | 1 | ||
| 132 | 1 | ¿Querés que le agregue una breve introducción o contexto arriba (por ejemplo, “Esta prueba forma parte del proceso de evaluación de capacidad del servicio de autenticación institucional”)? Eso le da un tono más institucional para la wiki. |