jak prawidłowo zmierzyć opóźnienie w 7 minut
prawidłowe zmierzenie opóźnienia wymaga posiadania danych o jakości. Jest powód, dla którego KPMG „2016 Global CEO Outlook” stwierdził, że 84% dyrektorów generalnych jest zaniepokojonych jakością danych, na których podejmują decyzje, i to dlatego, że zbyt często dane mogą wprowadzać w błąd.
różnica między firmami, które dbają o swoje dane, a nie są ogromne. Naukowcy z MIT odkryli, że firmy, które przyjęły projekt oparty na danych, mają wydajność, która jest o 5-6% wyższa niż oczekiwano, biorąc pod uwagę ich inne inwestycje i wykorzystanie technologii informatycznych. Sam ten powód sprawia, że zrozumienie opóźnienia ma kluczowe znaczenie dla sukcesu biznesowego.
w ciągu zaledwie 7 minut dowiesz się wszystkiego, co musisz wiedzieć o pomiarze opóźnienia
- jak zmierzyć opóźnienie
- dlaczego właściwe mierzenie ma znaczenie
- typowe pułapki podczas patrzenia na dane opóźnienia
- krytyczność natychmiastowej informacji zwrotnej
- dlaczego wymagane są niepodpakowane dane
co to jest opóźnienie?
Dictionary.com definiuje opóźnienie jako”okres opóźnienia, gdy jeden komponent systemu sprzętowego czeka na wykonanie akcji przez inny komponent”. Mówiąc prościej, oznacza to ilość czasu pomiędzy wywołaniem funkcji a jej faktycznym wykonaniem. Opóźnienie jest nieodłączne we wszystkich systemach; nawet gdybyśmy mieli doskonały system (który nie istnieje), byłoby to utajone tyle czasu, ile potrzeba elektronom w komputerze, aby przełączyć Tranzystory z włączonego na wyłączony lub odwrotnie.
opóźnienie w małych operacjach to nic wielkiego, ale podczas obsługi milionów operacji są miliony opóźnień, które szybko się sumują. Opóźnienie nie jest definiowane przez jednostki pracy / czas, ale zamiast tego, jak się zachowuje. Narzędzia monitorujące raportują, ile czasu zajmuje od rozpoczęcia funkcji do jej zakończenia.
opóźnienie może mieć duży wpływ na Twoją firmę, na przykład „jeśli chodzi o szybkość urządzeń mobilnych, liczy się każda sekunda — za każdą dodatkową sekundę ładowania strony mobilnej konwersje mogą spaść nawet o 20%”(źródło). Dlatego niezwykle ważne jest, aby najlepiej zrozumieć swoje opóźnienie.
typowe pułapki podczas patrzenia na dane opóźnienia:
opóźnienie prawie nigdy nie następuje po normalnym, Gaussa lub rozkładu Poissona. Nawet jeśli Twoje opóźnienie podąża za jednym z tych rozkładów ze względu na sposób, w jaki obserwujemy opóźnienie, to sprawia, że średnie, mediany, a nawet odchylenia standardowe są bezużyteczne! Jeśli na przykład mierzysz obciążenia stron, 99,9999999999% tych obciążeń może być gorsze niż mediana. (Kliknij, aby tweet tej statystyki) jest to jeden z powodów, dla których losowe próbkowanie opóźnienia powoduje niedokładne dane, ale więcej na ten temat później.
w tym momencie prawdopodobnie zadajesz sobie pytanie, czy nie używamy żadnego odchylenia standardowego, jak możemy sensownie opisać opóźnienia? Odpowiedź jest taka, że musimy przyjrzeć się Percentylom i Maksymom. Większość ludzi myśli do siebie, ok więc patrzę na P95 i Rozumiem „wspólny przypadek”. Problem w tym, że P95 ukryje wszystkie złe rzeczy. Jak Gil Tene, CTO Azul Systems, mówi „to „system marketingowy”, ktoś zostaje oszukany.”
Weźmy na przykład Ten wykres:
kiedy widzisz ten wykres, możesz wyraźnie zobaczyć, dlaczego jest to mediana i średnia nie mają prawdziwego znaczenia, nie pokazują obszaru problemu. Kiedy widzisz 95. percentyl strzelać w lewo myślisz, że widzisz sedno problemu.
to, oczywiście, nie jest jednak prawdą, kiedy idziesz do zbadania, Dlaczego Twój program miał czkawkę, nie widzisz najgorszych 5% tego, co się stało. Aby uzyskać tego rodzaju skok wymaga, aby górne 5% danych było znacznie gorsze.
teraz spójrz na ten sam wykres, który pokazuje również 99,99 percentyla:
ta czerwona linia to 95.percentyl, podczas gdy zielona to 99,99. linia percentyla. Jak widać, 95. percentyl pokazuje tylko 2 z 22 twoich problemów! Dlatego musisz przyjrzeć się pełnemu spektrum swoich danych.
pomimo faktu, że wiele osób może myśleć, że ostatnie 5% Danych nie ma takiego znaczenia. Oczywiście, może to być po prostu ponowne uruchomienie maszyny Wirtualnej lub czkawka w systemie, lub coś w tym stylu, ale chociaż jest to prawdą, ignorując to, mówisz, że to po prostu nie dzieje się, gdy może to być jedna z najważniejszych rzeczy do namierzenia!
Gil Tenel lubi śmiałe twierdzenie, że ” wskaźnik numer jeden, którego nigdy nie powinieneś się pozbyć, to maksymalna wartość. To nie szum, to sygnał. Reszta to hałas.”Podczas gdy maksimum jest rzeczywiście wielkim pojedynkiem w systemie na dużą skalę, często nie jest praktyczne dążenie tylko do maksimum. Żaden system nie jest doskonały i zdarzają się czkawki, w praktycznym systemie na dużą skalę realizującym wyłącznie maksimum przypadków jest często dobrym sposobem na wypalenie zespołu programistów.
patrząc na 99.99 TH percentyla, widzisz, co dzieje się z większością twoich klientów, a wszelkie skoki, które tam widzisz, są rzeczywistymi problemami, podczas gdy wszelkie skoki w maksymalnym poziomie mogą być tylko czkawką w Twoim systemie. Gdy zespoły devops koncentrują swój wysiłek na tych małych problemach, robią to przy dużych kosztach alternatywnych, ponieważ nie mogą zamiast tego pracować nad bardziej poważnymi problemami.
warto zauważyć, że jeśli twoje 99,99 th i twoje maksimum są bardzo blisko siebie (i oba są kolczaste), to jest to świetny sygnał, że jest to problem, nad którym twój zespół powinien pracować. W ten sposób Gil ma rację, że maksimum to świetny sygnał, ale źle, że reszta danych to tylko szum. Jak widać na tym wykresie:
nasza 99.99. percentyl i maksimum z naszego poprzedniego przykładu pasują dokładnie. To świetny sygnał, że to, na co patrzysz, to prawdziwy błąd, a nie tylko czkawka.
uśrednianie percentyli: jak Przedkomputacja powoduje niedopasowanie opóźnienia:
jeszcze gorsza pułapka, w którą wpadają ludzie, niż tylko patrząc na 95. percentyl, nie rozpoznaje, że ich percentyle są uśrednione. Uśrednianie percentyli jest statystycznie absurdalne; usuwa wszelkie znaczenie z tego, na co patrzysz. Pokazaliśmy już, że średnie nie są dobre, gdy patrzymy na opóźnienia,a jeśli patrzymy na uśrednione percentyle, po prostu wracamy do punktu wyjścia. Wiele oprogramowania średnia Twoje percentyle wziąć na przykład Ten wykres Grafana:
czy zdałeś sobie z tego sprawę, zanim wszystkie percentyle na tym są średnie! Tak jest napisane w Księdze osi X. PRAWIE WSZYSTKIE USŁUGI MONITOROWANIA UŚREDNIAJĄ TWOJE PERCENTYLE! Jest to rzeczywistość wynikająca z prekomputacji. Gdy usługa monitorowania pobiera dane, oblicza percentyl danych dla tej minuty.
następnie, gdy przejdziesz do swojego 95. percentyla, pokazują Ci średnią ze wszystkich percentyli. Ten skrót od „twoje dobro”, aby Twoje usługi były szybsze, w rzeczywistości usuwa wszelkie znaczenie statystyczne z Twoich danych.
Dlaczego musisz mieć Niepsamplowane dane, aby prawidłowo zmierzyć opóźnienie:
niezależnie od tego, czy wiesz, czy nie, dzięki narzędziom monitorującym uczestniczącym w próbkowaniu danych, wytwarzają uśrednione dane. Prawie każde narzędzie monitorujące pobiera próbki swoich danych. Weźmy na przykład DataDog; mają dużą utratę danych. Jeśli wyślesz im 3 miliony punktów w ciągu minuty, nie wezmą ich wszystkich. Zamiast tego będą losowo próbkować punkty, a następnie agregować je w 1 punkt na minutę.
musisz mieć niezapisane dane, aby zrozumieć swoje opóźnienie. Jest to nieodłączne, że z próbkami danych nie można uzyskać dostępu do pełnej dystrybucji! Twoje maksimum nie jest twoim prawdziwym maksimum, ani twój globalny percentyl nie jest dokładnym odzwierciedleniem tego, co się dzieje!
pobrane dane zaostrzają skoordynowane pominięcie!
podczas próbkowania danych pomija się dane. Załóżmy na przykład, że masz 10 000 operacji odbywających się w ciągu minuty, wysyłając po 2 punkty danych do systemu monitorowania. Załóżmy, że masz błąd w systemie i jeden z tych punktów danych pokazuje to na 10 000 operacji. Twój system monitorowania ma tylko 1/20 000 szans na wybranie tego jako punktu danych, który pokazuje jako maksimum!
jeśli uruchomisz wystarczająco długo, punkt danych pojawi się w końcu, ale w rezultacie będzie wyglądał jak sporadyczny przypadek edge, nawet jeśli dzieje się to z jednym z Twoich klientów co minutę! Jeśli nie spróbujesz danych i masz jeden z tych skoków, pojawią się one wyraźnie w Twoim 99,99 percentylu, a twoje maksimum pojawi się blisko niego, sygnalizując, że masz błąd w programie. Jeśli jednak spróbujesz swoich danych, nie będą one wyświetlane tak często, co oznacza, że nie będzie to błąd, a raczej czkawka. Oznacza to, że twój zespół inżynierów nie zda sobie sprawy z tego znaczenia!
nie pozwól, aby Twoje narzędzie monitorujące zmyliło Cię do myślenia, że wiesz, co dzieje się z Twoim opóźnieniem.
wybierz narzędzie, które nie dostarcza próbkowanych danych. Wybierz narzędzie, które nie uśrednia Twoich globalnych percentyli. Rozpocznij bezpłatny dwutygodniowy okres próbny już dziś!