Jaka dystrybucja jest najczęściej używana do modelowania czasu odpowiedzi serwera?

16

Mam aplikację opartą na serwletach, w której mierzę czas potrzebny na ukończenie każdego żądania do tego serwletu. Już obliczam proste statystyki, takie jak średnia i maksimum; Chciałbym jednak opracować bardziej wyrafinowaną analizę i do tego celu uważam, że muszę odpowiednio modelować czasy reakcji.

Z pewnością, powiadam, czasy odpowiedzi są zgodne z dobrze znaną dystrybucją i istnieją dobre powody, by sądzić, że dystrybucja jest właściwym modelem. Nie wiem jednak, jaka powinna być ta dystrybucja.

Przychodzą mi na myśl log-normal i Gamma i możesz wykonać jeden z dopasowanych danych czasu rzeczywistego. Czy ktoś ma pogląd na to, jaką dystrybucję powinny przestrzegać czasy reakcji?

Sean Owen
źródło

Odpowiedzi:

17

Rozkład Log-Normal jest tym, który najlepiej opisuję opóźnienia czasów odpowiedzi serwera dla całej bazy użytkowników w danym okresie.

Możesz zobaczyć kilka przykładów na trafnie nazwanej stronie lognormal.com, której zadaniem jest mierzenie rozkładu opóźnień witryny w czasie i więcej. Nie mam powiązań z witryną, z wyjątkiem bycia szczęśliwym użytkownikiem. Oto jak wygląda dystrybucja; czas odpowiedzi (np. ładowanie strony internetowej) a liczba odpowiedzi:

rozkład log-normalny

Należy zauważyć, że na tym wykresie skala czasu obciążenia (oś X) jest liniowa. Jeśli zmienisz oś x na skalę logarytmiczną, kształt rozkładu będzie wyglądał bardziej normalnie (w kształcie dzwonu) po prawej stronie piku.

arielf
źródło
Ten plik PDF naprawdę moim zdaniem wygląda jak Fréchet.
usεr11852 mówi Reinstate Monic
4

Przykładowy wykres.  Zobacz artykuł, aby uzyskać więcej informacji.

Moje badania pokazują, że najlepszy model zależy od kilku rzeczy: 1) Czy zajmujesz się ciałem, ogonem lub jednym i drugim? Jeśli nie „oba”, modelowanie filtrowanego zestawu danych może być bardziej przydatne. 2) Czy chcesz bardzo prosty czy bardzo dokładny? tj. ile parametrów?

Jeśli odpowiedź na 1 była „zarówno”, jak i 2 była „prosta”, Pareto wydaje się działać najlepiej. W przeciwnym razie, jeśli 1 byłby „ciałem”, a 2 był „prosty” - wybierz filtrowany model erlang. Jeśli 1 było „zarówno”, jak i 2 było „dokładne”, prawdopodobnie chcesz mieć model mieszanki gaussowskiej na swoich danych w domenie dziennika - w efekcie lognormalne dopasowanie.

Ostatnio badam tę kwestię i nie znalazłem wystarczająco dobrego tematu w publicznym Internecie, więc właśnie napisałem post na blogu, w którym szczegółowo opisałem moje badania na ten temat.

Andrew Charneski
źródło
1
Dzięki za wykres. W oparciu o (z grubsza) dystrybucję tri-modalną, którą masz, uważam, że nie jest to proste ustawienie (pojedynczy serwer). Wydaje się, że masz wolniejsze oprogramowanie pośrednie lub back-endy. Powodują one spowolnienie ogólnej odpowiedzi, gdy serwer skierowany do użytkownika czeka na potencjalnie buforowane) podsystemy zaplecza. Nie jest też jasne, co reprezentują osie X i Y. Czy odwróciłeś czas ładowania (pierwotnie oś X) i zlicza (pierwotnie oś Y)?
arielf
Dziekuję za odpowiedź! Źródłowy zestaw danych był bardziej podobny do pingów niż żądań usług internetowych, ale zgaduję, że dystrybucja trimodalna wynika głównie z dwóch rzeczy: 1) Główna asymetria bimodalna wynika z dwóch ścieżek sieciowych, podczas gdy 2) długi ogon trzeci składnik jest spowodowany scenariuszami odzyskiwania po błędzie tcp. To tylko przypuszczenie ... moim głównym celem była empiryczna użyteczność różnych modeli, a nie proces i teoria. Nie jestem do końca pewien, o co pytasz o odwróconą oś, ale ... czy masz przykładowy wykres?
Andrew Charneski,
Przepraszam również za niechlujną grafikę. Oś X jest w mikrosekundach, a oś Y to gęstość prawdopodobieństwa. (Tak, wiem ... przepraszam ... patrz notatnik dla powtarzalnej nauki.)
Andrew Charneski,