Compartir a través de

Validar plan de pruebas de carga con Azure Load Testing (App Service + Container App + PostgreSQL Flexible) y cómo configurar la carga

Alejandro Jimenez Gonzalez 0 Puntos de reputación
2026-06-18T15:29:00.51+00:00

Contexto: Tengo varios sistemas web (Laravel/PHP) en Azure que se vuelven críticos en un evento estacional de alta concurrencia (~300–400 usuarios concurrentes por sistema). Hoy en un entorno DEV:

  • App Services Linux Basic B1
  • Un Container App (0.5 vCPU / 1 GiB, escala 1–5 réplicas)
  • PostgreSQL Flexible Server Burstable B1ms
  • Una Function que envía correos

En el proceso real, las apps correrán en App Service Premium v3 (P2).

Mi plan (lo que quiero validar):

  1. Probar con Azure Load Testing en DEV, no en producción.
  2. Para que sea representativo, escalar temporalmente el App Service a P2 v3 → correr → volver a Basic.
  3. Dejar las DB en Burstable; pasar a General Purpose solo si la prueba muestra que topan.
  4. En endpoints de escritura y la función de correo, evitar enviar correos reales y ensuciar datos.

Preguntas:

  1. Para endpoints con login + escritura, ¿me conviene la prueba URL-based o subir un JMeter?
  2. Para probar en P2: ¿el flujo correcto es escalar a P2 v3 → correr → bajar a B1? ¿La facturación prorratea para pagar solo las horas de prueba? ¿El resultado en P2 es representativo del proceso?
  3. Con objetivo de 300–400 usuarios concurrentes, ¿cómo configuro VU, rampa y duración para encontrar el techo real?
  4. En PostgreSQL Burstable B1ms, ¿qué métricas vigilo para confirmar que la DB es el cuello (CPU credits agotados, conexiones al límite, IOPS) y debo pasar a General Purpose?
  5. En el Container App, ¿cómo veo en vivo si escala de 1 a 5 réplicas durante la prueba?
  6. Varios endpoints escriben en la DB y una function envía correos. ¿Forma recomendada de probar escrituras en DEV sin enviar correos reales ni dejar datos basura? (¿desactivar correo, datos únicos por CSV, limpieza posterior?)
  7. ¿Cómo se cobra el VUH — por usuarios configurados (pico) o promedio activo? Si detengo antes, ¿solo pago lo corrido?
  8. En general, ¿mi enfoque es correcto (probar en DEV sobre P2, DB Burstable hasta probar lo contrario, a 300–400 usuarios)? ¿Algo que esté pasando por alto?
Azure DevOps
0 comentarios No hay comentarios

1 respuesta

Ordenar por: Muy útil
  1. Pravallika KV 17,540 Puntos de reputación Personal externo de Microsoft Moderador
    2026-06-18T17:32:17.28+00:00

    Hola @Alejandro Jimenez Gonzalez ,

    Gracias por ponerse en contacto con Microsoft Q&A.

    Tu enfoque es en general correcto y coincide con la forma en la que validaría la capacidad para un evento estacional.

    1. Pruebas basadas en URL vs JMeter Para endpoints que incluyen login, autenticación, sesiones y escrituras en base de datos, recomendaría usar JMeter. Las pruebas basadas solo en URLs son útiles para escenarios simples (GET/APIs), pero JMeter es más adecuado para simular flujos reales de usuarios, manejo de tokens, cookies y procesos multi-etapa.

    2. Pruebas en P2v3 Sí, escalar el App Service de B1 a P2v3 durante la prueba es la estrategia correcta. Azure cobra de forma prorrateada, por lo que solo pagas el tiempo en que el nivel superior está activo. Si producción usará P2v3 con la misma configuración de la aplicación, los resultados serán representativos del comportamiento real.

    3. Configuración de carga para 300–400 usuarios concurrentes En lugar de comenzar directamente con 400 usuarios, es mejor hacer una subida progresiva, por ejemplo:

    • 100 usuarios durante 10 minutos
    • 200 usuarios durante 10 minutos
    • 300 usuarios durante 10 minutos
    • 400 usuarios durante 10–15 minutos

    Opcionalmente una etapa de 500 usuarios para identificar el punto de ruptura

    Se deben monitorear los tiempos de respuesta (p95), el throughput y las tasas de error. El límite real suele estar donde la latencia o los errores dejan de ser aceptables, no necesariamente cuando el sistema falla por completo.

    4. Indicadores de cuello de botella en PostgreSQL B1ms Para determinar si PostgreSQL es el limitante, monitorea:

    • CPU %
    • Créditos de CPU restantes
    • Conexiones activas
    • IOPS de lectura/escritura
    • Latencia de almacenamiento
    • Consultas lentas y bloqueos

    Si los créditos de CPU se agotan, el CPU se mantiene alto de forma sostenida, las conexiones se saturan o la latencia de almacenamiento aumenta antes de que la capa de aplicación se sature, es una señal clara de que deberías migrar a General Purpose.

    5. Visibilidad del escalado del Container App Durante la prueba, monitorea:

    • Número de réplicas
    • Uso de CPU
    • Uso de memoria

    Deberías poder ver cómo el Container App escala desde 1 réplica hasta el máximo configurado (por ejemplo, 5) conforme aumenta la carga. Esto ayuda a validar tanto el rendimiento como el comportamiento del autoscaling.

    6. Pruebas de escritura sin enviar correos ni generar datos no deseados Durante las pruebas de carga, desactivaría el envío real de correos (por ejemplo usando el driver log o array en Laravel, o un servidor SMTP simulado). Para las escrituras en base de datos, usaría datos parametrizados (CSV en JMeter), etiquetaría los registros con un identificador de ejecución de prueba y luego los limpiaría al finalizar. Esto permite pruebas realistas sin afectar sistemas externos ni dejar datos innecesarios.

    7. Cobro de VUH El consumo de VUH en Azure Load Testing se basa en la ejecución real de la prueba. Si se detiene antes de tiempo, la facturación también se detiene; no se cobra por el tiempo no utilizado.

    Evaluación general Probar en DEV mientras se escalan temporalmente los App Services a P2v3 es una estrategia práctica y rentable. Mantener PostgreSQL en Burstable inicialmente es razonable, siempre que se monitoricen cuidadosamente los créditos de CPU, conexiones e IOPS. Si la base de datos se convierte en el primer cuello de botella, conviene repetir la prueba con una capa General Purpose para validar el sistema completo. Con escenarios realistas en JMeter y una subida progresiva hasta 300-400 usuarios concurrentes, podrás identificar el verdadero límite del sistema y dimensionar correctamente la producción.

    ¡Espero que esto te ayude!


    Si la solución fue útil, te agradeceríamos que dedicaras un momento a hacer clic en User's image y luego en «Sí» en la pregunta «¿Le resultó útil esta respuesta?». Y si tienes alguna otra consulta, háznoslo saber.

    ¿Le ha resultado útil esta respuesta?

    1 persona ha encontrado útil esta respuesta.

Su respuesta

Las respuestas pueden ser marcadas como "Aceptadas" por el autor de la pregunta y "Recomendadas" por los moderadores, lo que ayuda a los usuarios a saber que la respuesta ha resuelto el problema del autor.