Hvordan Måle Latency Riktig I 7 minutter
Måle Latency riktig krever at du har kvalitetsdata. DET ER en grunn TIL AT KPMGS «2016 Global CEO Outlook» fant at 84% AV KONSERNSJEFENE er bekymret for kvaliteten på dataene de baserer beslutninger på, og det er fordi alt for ofte data kan villede.
forskjellen mellom selskaper som bryr seg om sine data og ikke er stor. MIT-forskere fant at selskaper som har vedtatt en datadrevet design, har en produksjon som er 5-6% høyere enn det som forventes gitt deres andre investeringer og bruk av informasjonsteknologi. Denne grunnen alene gjør forståelse Latens kritisk til suksess.
på bare 7 minutter vil du lære alt du trenger å vite om måling av latens
- hvordan måle latens
- hvorfor riktig måling av det betyr noe
- vanlige fallgruver når du ser på latensdataene dine
- kritikken av øyeblikkelig tilbakemelding
- hvorfor fullstendige data kreves
så hva er latens?
Dictionary.com latens defineres som «forsinkelsesperioden når en komponent i et maskinvaresystem venter på at en handling skal utføres av en annen komponent». I enklere termer betyr dette tiden mellom å kalle en funksjon og dens faktiske utførelse. Latens er iboende i alle systemer; selv om vi hadde et perfekt system (som ikke eksisterer), ville det være latent hvor lang tid det tar for elektronene i datamaskinen å slå transistorene fra på til av eller omvendt.
Latens i små operasjoner er ikke en stor sak, men når du håndterer millioner av operasjoner, er det millioner av latenser som legger opp raskt. Ventetid er ikke definert av arbeidsenheter / tid, men i stedet hvordan den oppfører seg. Overvåkingsverktøy rapporterer hvor lang tid det tar fra starten av en funksjon til slutten av funksjonen.
Latens kan ha stor innvirkning på virksomheten din, for eksempel «når det gjelder mobilhastighet, betyr hvert sekund-for hvert ekstra sekund det tar en mobil side å laste, konverteringer kan falle med opptil 20%» (Kilde). Så det er kritisk viktig å forstå latensen din så godt du kan.
Vanlige Fallgruver Når Du Ser På Latensdataene Dine:
Latens følger nesten aldri En Normal, Gaussisk eller Poisson-distribusjon. Selv om ventetiden din følger en av disse fordelingene på grunn av måten vi observerer ventetid på, gjør det gjennomsnitt, medianer og til og med standardavvik ubrukelig! Hvis du for eksempel måler sidebelastninger, kan 99,9999999999% av disse belastningene være verre enn medianen din. (Klikk for å tweet denne statistikken) Dette er en del av grunnen til at tilfeldig prøvetaking din ventetid forårsaker unøyaktige data, men mer om dette senere.
på dette punktet spør du deg selv om vi ikke bruker noen standardavvik, hvordan kan vi meningsfylt beskrive latenser? Svaret er at vi må se På Prosentiler og Maksimum. De fleste tenker for seg selv, ok, så jeg ser På P95 og jeg forstår det «vanlige tilfellet». Problemet med Dette er At P95 skal skjule alle de dårlige greiene. Som Gil Tene, CTO For Azul Systems, sier «det er et «markedsføringssystem», Blir Noen lurt.»
Ta for eksempel denne grafen:
når du ser denne grafen, kan du tydelig se hvorfor det er medianen og gjennomsnittet har ingen reell betydning, de viser ikke problemområdet. Når du ser den 95. persentilen skyte opp til venstre du tror du ser hjertet av problemet.
Dette er selvfølgelig ikke sant, men når du går for å undersøke hvorfor programmet ditt hadde en hikke, klarer du ikke å se de verste 5% av det som skjedde. For å få denne typen spike krever at topp 5% av dataene er betydelig verre.
se nå på samme graf som også viser 99.99-persentilen:
den røde linjen er den 95. persentilen, mens den grønne er den 99,99. persentillinjen. Som du tydelig kan se, viser 95-prosentilen bare 2 av 22 av dine problemer! Det er derfor du må se på hele spekteret av dine data.
til Tross for at mange kanskje tror at de siste 5% av dataene ikke har så stor betydning. Jo, det kan bare være en virtuell maskin som starter på nytt eller en hikke i systemet ditt, eller noe sånt, men mens det er sant ved å ignorere det, sier du at det bare ikke skjer når det kan være en av de viktigste tingene for deg å målrette!
Gil Tenel liker å gjøre den dristige påstanden om at » den første indikatoren du aldri bør bli kvitt er maksimumsverdien. Det er ikke støy, det er signalet. Resten er støy.»Mens maksimumet faktisk er en stor singel i et system i stor skala, er det ofte ikke praktisk å forfølge bare maksimal sak. Ingen system er perfekt og hikke oppstår, i en storstilt praktisk system forfølge maksimal saken utelukkende er ofte en god måte å brenne ut utviklingsteamet.
når du ser på 99.99-persentilen, ser du hva som skjer med det store flertallet av kundene dine og eventuelle pigger du ser der, vet du er faktiske problemer, mens noen pigger i maksimumet ditt bare kan være en hikke i systemet ditt. Når devops-teamene fokuserer sin innsats på disse små hikke, gjør de det med stor mulighetskostnad, da de ikke i stedet kan jobbe med flere store problemer.
det er oppmerksom på at hvis din 99.99 th og maksimum er svært nær hverandre (og er begge spiked) enn det er et godt signal om at dette er et problem laget ditt skal jobbe med. På denne måten Har Gil rett på at maksimumet er et godt signal, men feil at resten av dataene dine bare er støy. Som du kan se i denne grafen:
Vår 99.99. persentil og maksimum fra vårt forrige eksempel samsvarer nøyaktig. Dette er et flott signal om at det du ser på er en ekte feil og ikke bare en hikke.
Gjennomsnittlig Persentiler: Hvordan Precomputation Får Deg Til Å Mismeasure Latency:
en enda verre fallgruve folk faller inn i enn bare å se på 95-persentilen, unnlater å gjenkjenne at deres prosentiler er i gjennomsnitt. Gjennomsnittlig prosentiler er statistisk absurd; det fjerner all betydning fra hva det er du ser på. Vi har allerede vist hvordan gjennomsnittene ikke er gode, når du ser på latens, og hvis du ser på gjennomsnittlige prosentiler, er du rett tilbake til utgangspunktet. Mange programvarens gjennomsnittlige persentiler tar for eksempel Dette Grafana-diagrammet:
Hvorvidt du skjønte det før alle persentiler på dette er gjennomsnittlig! Det står så rett der i x-aksen hovedbok. NESTEN ALLE OVERVÅKING TJENESTER GJENNOMSNITT DINE PERSENTILER! Dette er en realitet på grunn av precomputation. Når overvåkingstjenesten tar inn dataene dine, beregner de persentilen av dataene i det minuttet.
Så når du går for å se på din 95. prosentil, viser de deg et gjennomsnitt av alle dine prosentiler. Denne snarveien for «ditt gode» for å gjøre tjenesten raskere, fjerner i virkeligheten all statistisk signifikans fra dataene dine.
Hvorfor Du Må Ha Fullstendige Data For Å Måle Latens Riktig:
Uansett om du vet det, ved å overvåke verktøy som deltar i datainnsamling, produserer de gjennomsnittlige data. Nesten alle overvåkingsverktøy prøver sine data. Ta For Eksempel DataDog; de har store tap av data. Hvis du sender dem 3 millioner poeng i et minutt vil de ikke ta dem alle. I stedet vil de tilfeldig prøve poengene og samle dem til 1 poeng per minutt.
du må ha fullstendige data for å forstå ventetiden. Det er iboende at med samplede data kan du ikke få tilgang til full distribusjon! Ditt maksimum er ikke ditt sanne maksimum, og din globale prosentil er heller ikke en nøyaktig representasjon av hva som skjer!
Samplede Data forverrer Koordinert Utelatelse!
når du prøver data, utelater du data. Si for eksempel at du har 10.000 operasjoner som skjer i et minutt, og sender ut 2 datapunkter hver til overvåkingssystemet ditt. Si at du har en feil i systemet ditt, og en av disse datapunktene viser dette per 10.000 operasjoner. Overvåkingssystemet ditt har bare en 1/20 000 sjanse til å velge dette som datapunktet det viser deg som maksimum!
hvis du løper lenge nok, vil datapunktet dukke opp til slutt, men som et resultat vil det se ut som en sporadisk edge-sak, selv om det skjer med en av kundene dine hvert minutt! Når du ikke prøver data, og du har en av disse toppene, vil den dukke opp tydelig i din 99.99-prosentil, og maksimumet ditt vil dukke opp nær det, og signaliserer deg at du har en feil i programmet ditt. Når du prøver dataene dine, vil det imidlertid ikke vises så ofte, noe som betyr at du ikke ser det som en feil, men heller som en hikke. Dette betyr at ingeniørteamet ditt ikke vil innse betydningen av det!
Ikke la overvåkingsverktøyet lure deg til å tro at du vet hva som skjer Med Latensen din.
Velg et verktøy som ikke inneholder samplede data. Velg et verktøy som ikke gjennomsnittlig dine globale persentiler. Start en gratis to-ukers prøveperiode i dag!