¿Qué distribución se usa más comúnmente para modelar el tiempo de respuesta del servidor?

16

Tengo una aplicación basada en servlet en la que mido el tiempo necesario para completar cada solicitud a ese servlet. Ya calculo estadísticas simples como la media y la máxima; Sin embargo, me gustaría producir un análisis más sofisticado, y para hacerlo creo que necesito modelar adecuadamente estos tiempos de respuesta.

Seguramente, digo, los tiempos de respuesta siguen una distribución bien conocida, y hay buenas razones para creer que la distribución es el modelo correcto. Sin embargo, no sé cuál debería ser esta distribución.

Log-normal y Gamma vienen a la mente, y usted puede hacer que un tipo de datos de tiempo de respuesta real se ajuste. ¿Alguien tiene una opinión sobre qué distribución deben seguir los tiempos de respuesta?

Sean Owen
fuente

Respuestas:

16

La distribución Log-Normal es la que mejor encuentro al describir las latencias de los tiempos de respuesta del servidor en toda la base de usuarios durante un período de tiempo.

Puede ver algunos ejemplos en el sitio llamado lognormal.com, cuyo negocio es medir la distribución de latencia del sitio a lo largo del tiempo y más. No estoy afiliado al sitio, excepto por ser un usuario feliz. Así es como se ve la distribución; tiempo de respuesta (por ejemplo, carga de la página web) frente al número de respuestas:

una distribución logarítmica normal

Tenga en cuenta que en este gráfico, la escala de tiempo de carga (eje X) es lineal. Si cambia el eje x a una escala logarítmica, la forma de la distribución se vería más normal (en forma de campana) en el lado derecho del pico.

arielf
fuente
Este PDF realmente se parece a un Fréchet en mi opinión.
usεr11852 dice Reinstate Monic
4

Gráfico de ejemplo.  Ver artículo para más profundidad.

Mi investigación muestra que el mejor modelo está determinado por algunas cosas: 1) ¿Le preocupa el cuerpo, la cola o ambos? Si no es "ambos", modelar un conjunto de datos filtrado puede ser más útil. 2) ¿Quieres una muy simple o muy precisa? es decir, ¿cuántos parámetros?

Si la respuesta a 1 fue "ambos" y 2 fue "simple", Pareto parece funcionar mejor. De lo contrario, si 1 era "cuerpo" y 2 era "simple", elija un modelo de erlang filtrado. Si 1 era "ambos" y 2 era "exacto", probablemente desee un modelo de mezcla gaussiana en sus datos en el dominio de registro, efectivamente un ajuste lognormal.

He estado investigando esto últimamente, y no encontré que el tema se cubriera lo suficientemente bien en Internet público, así que escribí una publicación de blog que detalla mi investigación sobre este tema.

Andrew Charneski
fuente
1
Gracias por la tabla. Basado en la distribución (aproximadamente) trimodal que tiene, creo que esta no es una configuración simple (servidor único). Parece que tienes algún middleware o back-end que son más lentos. Esto hace que la respuesta general se ralentice cuando el servidor orientado al usuario espera que respondan los subsistemas de fondo potencialmente en caché. Además, no está claro qué representan los ejes X e Y. ¿Ha invertido el tiempo de carga (originalmente el eje X) y los recuentos (originalmente el eje Y)?
arielf
Gracias por sus comentarios! El conjunto de datos de origen era más parecido a los pings que a las solicitudes de servicios web, pero supongo que la distribución trimodal se debe principalmente a dos cosas: 1) La asimetría bimodal principal se debe a dos rutas de red, mientras que 2) la tercera cola larga componente se debe a escenarios de recuperación de errores de TCP. Sin embargo, eso es solo una suposición ... mi enfoque principal estaba en la utilidad empírica de varios modelos, no en el proceso y la teoría. Sin embargo, no estoy completamente seguro de lo que está preguntando sobre el eje invertido ... ¿tiene un diagrama de ejemplo?
Andrew Charneski
Además, mis disculpas por el descuidado gráfico. El eje x es microsegundos, y el eje y es densidad de probabilidad. (Sí, lo sé ... lo siento ... mira el cuaderno para la ciencia reproducible)
Andrew Charneski