Quelle distribution est la plus utilisée pour modéliser le temps de réponse du serveur?

16

J'ai une application basée sur servlet dans laquelle je mesure le temps nécessaire pour terminer chaque demande à ce servlet. Je calcule déjà des statistiques simples comme la moyenne et le maximum; Je voudrais cependant produire une analyse plus sophistiquée, et pour ce faire, je pense que je dois modéliser correctement ces temps de réponse.

Certes, je dis, les temps de réponse suivent une distribution bien connue, et il y a de bonnes raisons de croire que la distribution est le bon modèle. Cependant, je ne sais pas ce que devrait être cette distribution.

Log-normal et Gamma viennent à l'esprit, et vous pouvez créer une sorte de données de temps de réponse réelles. Quelqu'un a-t-il une idée de la répartition des temps de réponse à suivre?

Sean Owen
la source

Réponses:

17

La distribution Log-Normal est celle que je trouve la meilleure pour décrire les latences des temps de réponse du serveur à travers toute la base d'utilisateurs sur une période de temps.

Vous pouvez voir quelques exemples sur le site bien nommé lognormal.com dont le métier est de mesurer la distribution de latence du site au fil du temps et plus encore. Je n'ai aucune affiliation avec le site, sauf pour être un utilisateur heureux. Voici à quoi ressemble la distribution; temps de réponse (par exemple, chargement d'une page Web) par rapport au nombre de réponses:

une distribution log-normale

Notez que dans ce graphique, l'échelle de temps de chargement (axe X) est linéaire. Si vous passez l'axe des x à une échelle logarithmique, la forme de la distribution semblerait plus normale (en forme de cloche) sur le côté droit du pic.

arielf
la source
Ce PDF ressemble vraiment à un Fréchet à mon avis.
usεr11852 dit Réintégrer Monic
4

Exemple de graphique.  Voir l'article pour plus de détails.

Ma recherche montre que le meilleur modèle est déterminé par quelques éléments: 1) Êtes-vous concerné par le corps, la queue ou les deux? Si ce n'est pas "les deux", la modélisation d'un ensemble de données filtré peut être plus utile. 2) Voulez-vous un modèle très simple ou très précis? c'est à dire combien de paramètres?

Si la réponse à 1 était "les deux" et 2 était "simple", Pareto semble fonctionner le mieux. Sinon, si 1 était "corps" et 2 était "simple" - choisissez un modèle erlang filtré. Si 1 était "les deux" et 2 était "précis", vous voulez probablement un modèle de mélange gaussien sur vos données dans le domaine de log - en fait un ajustement lognormal.

J'ai fait des recherches sur ce sujet ces derniers temps, et je n'ai pas trouvé que le sujet soit suffisamment bien couvert sur Internet public, alors j'ai juste écrit un article de blog détaillant mes recherches sur ce sujet.

Andrew Charneski
la source
1
Merci pour le tableau. Sur la base de la distribution tri-modale (à peu près) que vous avez, je pense que ce n'est pas un paramètre simple (serveur unique). Vous semblez avoir un middleware ou des back-ends plus lents. Celles-ci entraînent un ralentissement de la réponse globale lorsque le serveur utilisateur attend que les sous-systèmes d'arrière-plan potentiellement mis en cache répondent. De plus, ce que les axes X et Y représentent n'est pas clair. Avez-vous inversé le temps de chargement (à l'origine axe X) et les comptes (à l'origine axe Y)?
arielf
Merci pour vos commentaires! L'ensemble de données source s'apparentait plus à des pings qu'à des demandes de service Web, mais je suppose que la distribution trimodale est principalement due à deux choses: 1) L'asymétrie bi-modale principale est due à deux chemins réseau, tandis que 2) la troisième à longue queue est dû à des scénarios de récupération d'erreur TCP. C'est juste une supposition cependant ... mon objectif principal était l'utilité empirique de divers modèles, pas le processus et la théorie. Je ne suis pas tout à fait sûr de ce que vous demandez sur l'axe inversé, cependant ... avez-vous un exemple de tracé?
Andrew Charneski
Aussi, mes excuses pour le graphique bâclé. L'axe des x est microsecondes et l'axe des y est la densité de probabilité. (Ouais, je sais ... désolé ... voir le cahier pour la science reproductible.)
Andrew Charneski