Quale distribuzione viene più comunemente utilizzata per modellare i tempi di risposta del server?


16

Ho un'applicazione basata su servlet in cui misuro il tempo impiegato per completare ogni richiesta a quel servlet. Calcolo già statistiche semplici come media e massima; Vorrei comunque produrre alcune analisi più sofisticate, e per farlo credo di dover modellare correttamente questi tempi di risposta.

Sicuramente, dico, i tempi di risposta seguono una distribuzione ben nota e ci sono buone ragioni per ritenere che la distribuzione sia il modello giusto. Tuttavia, non so quale dovrebbe essere questa distribuzione.

Log-normal e Gamma vengono in mente e puoi creare uno dei due dati di tempo di risposta reali. Qualcuno ha una visione su quale distribuzione dovrebbero seguire i tempi di risposta?

Risposte:


16

La distribuzione Log-Normal è quella che trovo migliore nel descrivere le latenze dei tempi di risposta del server in tutta la base di utenti per un periodo di tempo.

È possibile visualizzare alcuni esempi nel sito lognormal.com dal nome appropriato, il cui compito è misurare la distribuzione della latenza del sito nel tempo e altro ancora. Non ho alcuna affiliazione con il sito se non per essere un utente felice. Ecco come appare la distribuzione; tempo di risposta (ad es. caricamento della pagina Web) rispetto al numero di risposte:

una distribuzione log-normale

Si noti che in questo grafico, la scala del tempo di caricamento (asse X) è lineare. Se si sposta l'asse x su una scala logaritmica, la forma della distribuzione sembrerebbe più normale (a forma di campana) sul lato destro del picco.


Questo PDF sembra davvero un Fréchet secondo me.
usεr11852 dice Reinstate Monic

4

Grafico di esempio.  Vedi l'articolo per una maggiore profondità.

La mia ricerca mostra che il modello migliore è determinato da alcune cose: 1) Ti preoccupi del corpo, della coda o di entrambi? Se non "entrambi", la modellazione di un set di dati filtrato può essere più utile. 2) Ne vuoi uno molto semplice o molto preciso? cioè quanti parametri?

Se la risposta a 1 era "entrambi" e 2 era "semplice", Pareto sembra funzionare meglio. Altrimenti, se 1 fosse "corpo" e 2 fosse "semplice", scegli un modello di filtro erlang. Se 1 era "entrambi" e 2 era "accurato", probabilmente vorrai un modello di miscela gaussiana sui tuoi dati nel dominio dei log - in effetti un adattamento lognormale.

Recentemente ho fatto ricerche su questo argomento e non ho trovato l'argomento da trattare abbastanza bene su Internet pubblico, quindi ho appena scritto un post sul blog che illustra in dettaglio la mia ricerca su questo argomento.


1
Grazie per il grafico. Basandomi sulla distribuzione (approssimativamente) tri-modale che hai, credo che questa non sia un'impostazione semplice (server singolo). Sembra che tu abbia dei middleware o back-end più lenti. Ciò causa un rallentamento della risposta generale quando il server rivolto verso l'utente attende la risposta di sottosistemi back-end potenzialmente memorizzati nella cache. Inoltre non è chiaro cosa rappresentino gli assi X e Y. Hai invertito il tempo di caricamento (originariamente asse X) e i conteggi (originariamente asse Y)?
arielf

Grazie per il tuo feedback! Il set di dati di origine era più simile ai ping che alle richieste di servizi Web, ma immagino che la distribuzione trimodale sia dovuta principalmente a due cose: 1) L'asimmetria bimodale principale è dovuta a due percorsi di rete, mentre 2) il 3a coda lunga componente è dovuto a scenari di recupero errori tcp. È solo una supposizione però ... il mio obiettivo principale era l'utilità empirica di vari modelli, non il processo e la teoria. Non sono del tutto sicuro di ciò che stai chiedendo sull'asse invertito, però ... hai un esempio di trama?
Andrew Charneski,

Inoltre, mi scuso per la grafica sciatta. L'asse x è microsecondi e l'asse y è la densità di probabilità. (Sì, lo so ... scusa ... vedi il quaderno per la scienza riproducibile.)
Andrew Charneski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.