Welche Verteilung wird am häufigsten zum Modellieren der Serverantwortzeit verwendet?

16

Ich habe eine servletbasierte Anwendung, in der ich die Zeit messe, die zum Abschließen jeder Anforderung an dieses Servlet benötigt wird. Ich berechne bereits einfache Statistiken wie den Mittelwert und das Maximum. Ich möchte jedoch eine differenziertere Analyse erstellen, und dazu muss ich diese Reaktionszeiten meines Erachtens richtig modellieren.

Ich sage, die Antwortzeiten folgen mit Sicherheit einer bekannten Verteilung, und es gibt gute Gründe zu der Annahme, dass die Verteilung das richtige Modell ist. Ich weiß jedoch nicht, wie diese Distribution aussehen soll.

Log-normal und Gamma kommen in den Sinn, und Sie können entweder eine Art von realen Antwortzeitdaten anpassen. Hat jemand eine Sicht auf welche Verteilung die Antwortzeiten folgen sollen?

Sean Owen
quelle

Antworten:

16

Die Log-Normal-Verteilung ist diejenige, die ich am besten finde, wenn es darum geht, Latenzen von Server-Antwortzeiten für die gesamte Benutzerbasis über einen bestimmten Zeitraum zu beschreiben.

Sie können einige Beispiele auf der Website lognormal.com finden, deren Aufgabe es ist, die Verteilung der Standortlatenz über einen längeren Zeitraum zu messen. Ich habe keine Zugehörigkeit zur Website, außer dass ich ein zufriedener Benutzer bin. So sieht die Verteilung aus: Antwortzeit (z. B. Laden der Webseite) im Verhältnis zur Anzahl der Antworten:

eine logarithmische Normalverteilung

Beachten Sie, dass in diesem Diagramm die Ladezeitskala (X-Achse) linear ist. Wenn Sie die x-Achse auf eine logarithmische Skala umschalten, sieht die Form der Verteilung auf der rechten Seite des Peaks normaler (glockenförmig) aus.

Arielf
quelle
Dieses PDF sieht meiner Meinung nach wirklich wie ein Fréchet aus.
usεr11852 sagt Reinstate Monic
4

Beispiel Graph.  Siehe Artikel für mehr Tiefe.

Meine Forschung zeigt, dass das beste Modell durch ein paar Dinge bestimmt wird: 1) Interessieren Sie sich für den Körper, den Schwanz oder für beides? Ist dies nicht "beides", kann die Modellierung eines gefilterten Datensatzes nützlicher sein. 2) Möchten Sie eine sehr einfache oder eine sehr genaue? dh wie viele Parameter?

Wenn die Antwort auf 1 "beide" und 2 "einfach" war, scheint Pareto am besten zu funktionieren. Andernfalls, wenn 1 "body" und 2 "simple" war, wählen Sie ein gefiltertes Langmodell. Wenn 1 "beides" und 2 "genau" war, möchten Sie wahrscheinlich ein Gaußsches Mischungsmodell für Ihre Daten in der Protokolldomäne - quasi eine logarithmische Anpassung.

Ich habe in letzter Zeit nachgeforscht und das Thema im öffentlichen Internet nicht gut genug gefunden. Deshalb habe ich gerade einen Blog-Beitrag geschrieben, in dem meine Nachforschungen zu diesem Thema aufgeführt sind.

Andrew Charneski
quelle
1
Danke für die Grafik. Aufgrund der (grob) trimodalen Verteilung, die Sie haben, ist dies meines Erachtens keine einfache Einstellung (für einen einzelnen Server). Sie scheinen Middleware oder Back-Ends zu haben, die langsamer sind. Diese führen dazu, dass die Gesamtantwort langsamer wird, wenn der dem Benutzer zugewandte Server auf die Antwort von möglicherweise zwischengespeicherten Back-End-Subsystemen wartet. Es ist auch nicht klar, was die X- und Y-Achse darstellen. Haben Sie die Ladezeit (ursprünglich X-Achse) und die Anzahl (ursprünglich Y-Achse) umgekehrt?
Arielf
Vielen Dank für Ihr Feedback! Der Quelldatensatz ähnelte eher Pings als Webservice-Anfragen, aber ich würde vermuten, dass die trimodale Verteilung hauptsächlich auf zwei Dinge zurückzuführen ist: 1) Die hauptsächliche bimodale Asymmetrie ist auf zwei Netzwerkpfade zurückzuführen, während 2) der lange dritte Die Komponente ist auf TCP-Fehlerbehebungsszenarien zurückzuführen. Das ist aber nur eine Vermutung ... Mein Hauptaugenmerk lag auf dem empirischen Nutzen verschiedener Modelle, nicht auf dem Prozess und der Theorie. Ich bin mir nicht ganz sicher, was Sie über die invertierte Achse fragen. Haben Sie ein Beispieldiagramm?
Andrew Charneski
Auch ich entschuldige mich für die schlampige Grafik. Die x-Achse ist Mikrosekunden und die y-Achse ist die Wahrscheinlichkeitsdichte. (Ja, ich weiß ... sorry ... siehe das Notizbuch für reproduzierbare Wissenschaft.)
Andrew Charneski