Usuarios Concurrentes (Concurrent Users)


Un tema que siempre es difícil de entender o asimilar es el tema de los Usuarios Concurrentes. Buscando en la red diversos artículos que explicaran esto pude encontrar un articulo de Alberto Savoia, un referente en Performance Testing (con solo poner su nombre en google lo veran ;)) llamado “Three Web load testing blunders, and how to avoid them” el cual explica de forma muy sencilla este concepto. Voy a tomar la primer parte de este y mas adelante haré lo mismo con los demas puntos ya que son muy importantes tambien.

En este articulo resalta:

El número de usuarios concurrentes no debe considerarse como entrada para el Load Testing , sino como el resultado de una serie de factores.

Esto viene al caso de que comúnmente uno define los escenarios de Performance o de pruebas de Carga de la manera: “La aplicación debe soportar un máximo de 250 usuarios concurrentes” poniendo implícitamente la cantidad e usuarios concurrentes como parámetro de entrada para las pruebas.

Se puede observar como ese valor no puede ser entrada con un ejemplo (Similar al del articulo de Alberto):

Hay 3 usuarios distintos que no se conocen entre si (van a tener acciones diferentes y desincronizadas)  y visitan la pagina de estado de cuenta de su banco 3 días consecutivos.

1º  Día

El Usuario 1 inicia sesión a las 12:00; el Usuario 2 inicia sesión a las 12:01 y el Usuario 3 inicia sesión a las 12:02 y cada uno de sus escenarios consiste en Login-> Home Page-> Cuenta Pesos ->Cuenta Dolares. Cada uno de los usuarios se toma 10 segundos mirando cada pagina (Think Time) antes de pasar a la siguiente; Si el tiempo de respuesta de cada pagina es de5 segundos  (tiempo que tarda en cargar) las sesiones de los 3 usuarios no se solaparan por lo que no habría usuarios concurrentes ya que el Usuario 1 va a recibir y ver cada una de las paginas antes de que el Usuario 2 inicie su sesión y el Usuario 2 va poder hacer lo mismo antes de que el Usuario 3 inicie su sesión.

Fig 1. No se da concurrencia de Usuarios
Fig 1. No se da concurrencia de Usuarios

2º Día

En el 2º día el tiempo de respuesta de cada pagina aumenta al doble (10 segundos) pero el tiempo que le toma a cada usuario leer la pagina sigue siendo de 10 segundos, por lo que cada sesión tendra un tiempo total de 80 segundos en lugar de los 60 segundos que antes tomaba. Este cambio en la velocidad de carga de pagina (Response Time) produce 2 usuarios concurrentes donde antes no los había, superponiendo las tareas del Usuario 1 con las del Usuario 2 y luego las del Usuario 2 con las del Usuario 3 como se ve en el gráfico.

Fig 2. Hay 2 Usuarios concurrentes debido al cambio en el tiempo de respuesta
Fig 2. Hay 2 Usuarios concurrentes debido al cambio en el tiempo de respuesta

3º Día

En el 3º día el tiempo de respuesta baja aun mas, llegando a 30 segundos el tiempo de respuesta de cada pagina, tardando 160 segundos cada sesión de usuario. Esto provoca que las sesiones del Usuario 1 y Usuario 2 se superpongan por 60 segundos generando 2 usuarios concurrentes, luego se genera 3 usuarios son currentes con la superposición de las sesiones del Usuario 1, Usuario 2 y Usuario 3 para luego quedar en 2 usuarios concurrentes.

Fig 3. La cantidad de Usuarios Concurrentes llega a 3
Fig 3. La cantidad de Usuarios Concurrentes llega a 3

Como se ve en los ejemplos el número de usuarios concurrentes no es una medida de la prueba de carga, ya que la carga fue idéntica en los 3 casos: tres usuarios, entrando al sistema en lapsos de un minuto, ven cuatro páginas cada uno con 10 segundos de Think Time por página.

En conclusión:

El número de usuarios concurrentes fue el resultado de la prueba de Carga:  es una medida de la habilidad del sitio web para manejar una carga especifica. Un sitio web más lento da lugar a más usuarios concurrentes.

Cuando se trata de medir la escalabilidad de un sitio Web, resulta que el número de usuarios concurrentes  ni siquiera es útil como resultado de la prueba de carga.

Si el sitio Web es un poco lento, el número de usuarios concurrentes aumenta. Si es realmente lento, una gran cantidad de usuarios reales lo abandonan, lo que reduce el número de usuarios concurrentes. Pero, por otra parte, si un sitio Web es muy rápido las sesiones se completan más rápidamente, reduciendo también el número de usuarios concurrentes.

La conclusión es que los usuarios concurrentes es una medida peligrosamente engañosa, es un indicador que puede ser utilizada de muchas maneras pero es prácticamente garantizado que da resultados cuestionables.

La pregunta inmediata es: ¿Qué medida debería usar en su lugar?

Para describir una entrada de carga, se puede utilizar la métrica inicio de sesiones de usuario por hora ya que es constante e independiente de la performance de la aplicación.

Anuncios

3 pensamientos en “Usuarios Concurrentes (Concurrent Users)”

  1. Hello everybody! I do not know where to begin but hope this place will be useful for me.
    In first steps it’s very good if someone supports you, so hope to meet friendly and helpful people here. Let me know if I can help you.
    Thanks in advance and good luck! 🙂

    Me gusta

  2. En realidad la probabilidad de usuarios concurrentes es muy baja dada las condiciones de un sistemas (hardware,software,ancho de banda, etc…).En las herramietas de rendimiento se ven indicadores que diga cual fue la concurrencia de usuarios, si no de conecxiones concurrentes o sesiones, de acuerdo al total de usuarios utilizados en las pruebas de rendimiento. Una varible que no puede servir de metrica para definir la cantidad de usuarios autilizar en una prueba deberia llamarse USUARIOS ACTIVOS registrados en el sistema o proyectados en el analisis de diseño de nuestra aplicación.
    Es decir que un sismtea domina modulos o funcionalidades, para pruebas de rendimiento llamecen de carga, estres, escalabilidad se debe basar en la totalidad de usuario que utilizaran cada funcionalidad en el sistema, ejemplo se tiene un sistema llamado SISTEMA DE PAGOS, el cual tiene las siguientes funcionalidades:
    PAGOS
    CONSULTAS
    REPORTES
    ADMINISTRACION SISTEMA
    De los cuales no todos los usuarios tendra el perfil para utilizar cada funcionalidad, esto quiere decir que la funcionalidad PAGOS tendra 10 usuarios,
    CONSULTAS 100 usuario, REPORTES 5 y ADSMINISTRACION SISTEMA 3 usuarios, para un total de 118 usuarios activos, la probalidad que todos los usuarios esten tengan una concurrencia en un instate de tiempo igual es MUY BAJA. Pero si quiere estimar de alguna forma cual va ser nuestra concurrencia de usuarios existe una formuala de probalidades llamada Ley de Little basada en relación a tres valores medidos de tres variables de importancia en un sistema:
    N : Número medio de usuarios en el sistema
    T : Tiempo promedio de un cliente en el sistema
     : Tasa media de arribo al sistema.

    Les dejo esta inquietud y podremos seguir hablando del tema

    Me gusta

    1. Hola JRCHarry,

      Creo que los estimadores que propones son fabulosos y ayudan a entender mejor el problema de la concurrencia. El problema que me gustaría plantear es: ¿Cómo puedo planificar cuando aún no tengo los datos?

      Un saludo!

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s