Come misurare correttamente la latenza in 7 minuti
Misurare correttamente la latenza richiede di disporre di dati di qualità. C’è una ragione per cui “2016 Global CEO Outlook” di KPMG ha rilevato che l ‘ 84% dei CEO è preoccupato per la qualità dei dati su cui si basano le decisioni ed è perché troppo spesso i dati possono trarre in inganno.
La differenza tra le aziende che si preoccupano dei loro dati e non lo fanno è enorme. I ricercatori del MIT hanno scoperto che le aziende che hanno adottato un design data-driven hanno un output che è 5-6% superiore a quello che ci si aspetterebbe dati i loro altri investimenti e l’uso della tecnologia dell’informazione. Questa sola ragione rende la comprensione della latenza fondamentale per il successo aziendale.
In soli 7 minuti, imparerete tutto quello che dovete sapere sulla misurazione della latenza
- per misurare la latenza
- perché una corretta misurazione è importante
- errori comuni quando guardando i vostri dati latenza
- la criticità di un feedback istantaneo
- perché non campionati dati è obbligatorio
Così che Cosa è la Latenza?
Dictionary.com definisce la latenza come “il periodo di ritardo in cui un componente di un sistema hardware è in attesa che un’azione venga eseguita da un altro componente”. In termini più semplici, ciò significa la quantità di tempo tra la chiamata di una funzione e la sua effettiva esecuzione. La latenza è inerente a tutti i sistemi; anche se avessimo un sistema perfetto (che non esiste), sarebbe latente la quantità di tempo che impiega gli elettroni nel computer per commutare i transistor da on a off o viceversa.
La latenza nelle piccole operazioni non è un grosso problema, ma quando si gestiscono milioni di operazioni, ci sono milioni di latenze che si sommano velocemente. La latenza non è definita da unità di lavoro/tempo, ma da come si comporta. Gli strumenti di monitoraggio riportano il tempo necessario dall’inizio di una funzione fino alla fine della funzione.
La latenza può avere un impatto importante sulla tua attività, ad esempio”Quando si tratta di velocità mobile, ogni secondo è importante — per ogni secondo aggiuntivo necessario per caricare una pagina mobile, le conversioni possono diminuire fino al 20%” (Fonte). Quindi è di fondamentale importanza capire la tua latenza nel miglior modo possibile.
Insidie comuni quando si guardano i dati di latenza:
La latenza non segue quasi mai una distribuzione normale, gaussiana o di Poisson. Anche se la tua latenza segue una di queste distribuzioni a causa del modo in cui osserviamo la latenza, rende inutili medie, mediane e persino deviazioni standard! Se, ad esempio, si misurano i carichi di pagina, il 99,9999999999% di questi carichi potrebbe essere peggiore della mediana. (Clicca per twittare questa statistica) Questo è parte del motivo per cui il campionamento casuale la latenza causa dati imprecisi, ma ne parleremo più avanti.
A questo punto, probabilmente ti stai chiedendo se non stiamo usando alcuna deviazione standard, come possiamo descrivere in modo significativo le latenze? La risposta è che dobbiamo guardare a Percentili e Massimi. La maggior parte delle persone pensa a se stessi, ok, quindi guardo P95 e capisco il “caso comune”. Il problema con questo è che P95 sta per nascondere tutte le cose cattive. Come dice Gil Tene, CTO di Azul Systems,” è un “sistema di marketing”, Qualcuno viene ingannato.”
Prendiamo ad esempio questo grafico:
Quando vedi questo grafico, puoi chiaramente vedere perché è la mediana e la media non hanno un significato reale, non mostrano l’area problematica. Quando vedi il 95 ° percentile sparare a sinistra pensi di vedere il cuore del problema.
Questo, ovviamente, non è vero però, quando vai a indagare sul perché il tuo programma ha avuto un singhiozzo non riesci a vedere il peggiore 5% di quello che è successo. Per ottenere questo tipo di picco richiede che il 5% superiore dei dati sia significativamente peggiore.
Ora guarda lo stesso grafico che mostra anche il 99,99 ° percentile:
Quella linea rossa è il 95 ° percentile mentre il verde è il 99,99 ° percentile. Come puoi vedere chiaramente il 95 ° percentile mostra solo 2 su 22 dei tuoi problemi! Questo è il motivo per cui è necessario guardare l’intero spettro dei dati.
Nonostante il fatto che molte persone possano pensare che l’ultimo 5% dei dati non abbia molto significato. Certo, potrebbe essere solo un riavvio di una macchina virtuale o un singhiozzo nel tuo sistema, o qualcosa del genere, ma mentre questo è vero ignorandolo, stai dicendo che non succede quando potrebbe essere una delle cose più importanti per te da indirizzare!
Gil Tenel ama fare l’affermazione audace che “L’indicatore numero uno di cui non dovresti mai sbarazzarti è il valore massimo. Questo non è rumore, questo è il segnale. Il resto è rumore.”Mentre il massimo è davvero un grande singolo in un sistema su larga scala, spesso non è pratico perseguire solo il caso massimo. Nessun sistema è perfetto e si verificano singhiozzi, in un sistema pratico su larga scala perseguire esclusivamente il caso massimo è spesso un buon modo per bruciare il tuo team di sviluppo.
Quando guardi il 99.99 ° percentile stai vedendo cosa succede alla grande maggioranza dei tuoi clienti e qualsiasi picco che vedi lì sai che sono problemi reali, mentre qualsiasi picco nel tuo massimo potrebbe essere solo un singhiozzo nel tuo sistema. Quando i team devops concentrano i loro sforzi su questi piccoli singhiozzi, lo fanno a grandi costi di opportunità, poiché non possono invece lavorare su problemi più importanti.
È da notare che se il tuo 99.99 esimo e il tuo massimo sono molto vicini l’uno all’altro(e sono entrambi a spillo), è un ottimo segnale che questo è un problema su cui il tuo team dovrebbe lavorare. In questo modo, Gil ha ragione che il massimo è un grande segnale, ma sbagliato che il resto dei dati è solo rumore. Come puoi vedere in questo grafico:
Il nostro 99.99 ° percentile e massimo dal nostro esempio precedente corrispondono esattamente. Questo è un grande segnale che quello che stai guardando è un vero bug e non solo un singhiozzo.
Percentili medi: come la precomputazione ti sta causando una mancata misura della latenza:
Una trappola ancora peggiore in cui le persone cadono rispetto al solo guardare il 95 ° percentile non riesce a riconoscere che i loro percentili sono mediati. La media dei percentili è statisticamente assurda; rimuove ogni significato da quello che stai guardando. Abbiamo già mostrato come le medie non sono buone, quando si guarda alla latenza, e se si sta guardando percentili medi si è semplicemente di nuovo al punto di partenza. La media di molti software i tuoi percentili prendono ad esempio questo grafico Grafana:
Che tu lo abbia realizzato o meno prima che tutti i percentili su questo siano nella media! Lo dice proprio lì nel libro mastro dell’asse X. QUASI TUTTI I SERVIZI DI MONITORAGGIO IN MEDIA I PERCENTILI! Questa è una realtà dovuta alla precomputazione. Quando il servizio di monitoraggio prende in vostri dati, stanno calcolando il percentile dei dati per quel minuto.
Poi, quando vai a dare un’occhiata al tuo 95 ° percentile, ti stanno mostrando una media di tutti i tuoi percentili. Questa scorciatoia per” il tuo bene ” per rendere il tuo servizio più veloce, in realtà, rimuove tutta la significatività statistica dai tuoi dati.
Perché è necessario disporre di dati non campionati per misurare correttamente la latenza:
Che tu lo sappia o meno, monitorando gli strumenti che partecipano al campionamento dei dati, stanno producendo dati medi. Quasi ogni strumento di monitoraggio campiona i propri dati. Prendiamo ad esempio DataDog; hanno una grave perdita di dati. Se li invii 3 milioni di punti in un minuto, non li prenderanno tutti. Invece, campioneranno casualmente i punti, quindi li aggregheranno in 1 punto al minuto.
È necessario disporre di dati non campionati per comprendere la latenza. È intrinseco che con i dati campionati non è possibile accedere alla distribuzione completa! Il tuo massimo non è il tuo vero massimo, né il tuo percentile globale è una rappresentazione accurata di ciò che sta accadendo!
I dati campionati aggravano l’omissione coordinata!
Quando si campionano i dati, si omettono i dati. Supponiamo ad esempio che si verifichino 10.000 operazioni in un minuto inviando 2 punti dati ciascuno al sistema di monitoraggio. Supponiamo che tu abbia un bug nel tuo sistema e uno di questi punti dati lo mostra per 10.000 operazioni. Il tuo sistema di monitoraggio ha solo una probabilità di 1/20,000 di scegliere questo come punto dati che ti mostra come il massimo!
Se esegui abbastanza a lungo, il punto dati verrà visualizzato alla fine, ma di conseguenza, sembrerà un caso limite sporadico, anche se sta accadendo a uno dei tuoi clienti ogni minuto! Quando non campioni i dati, e hai uno di questi picchi, apparirà chiaramente nel tuo 99.99 ° percentile, e il tuo massimo apparirà vicino ad esso, segnalandoti che hai un bug nel tuo programma. Quando assaggi i tuoi dati, tuttavia, non verrà visualizzato così spesso, il che significa che non lo vedrai come un bug ma piuttosto come un singhiozzo. Ciò significa che il tuo team di ingegneri non riuscirà a rendersene conto!
Non lasciate che il vostro strumento di monitoraggio ingannare a pensare di sapere cosa sta succedendo con la latenza.
Scegliere uno strumento che non fornisce dati campionati. Scegli uno strumento che non media i tuoi percentili globali. Inizia una prova gratuita di due settimane oggi!