Vai al contenuto
SDETRole
SDETRole

Glossario · Performance

Latenza percentile

In inglese: Percentile latency

Detto anche: percentile di latenza, percentili di latenza, p50, p90

Definizione

Misura del tempo di risposta come p95 o p99 che indica entro quanto si è conclusa quella quota di richieste, rivelando la coda lenta che le medie nascondono.

La latenza percentile descrive i tempi di risposta in base al rango invece che alla media. Il p95 è il valore entro cui è rimasto il 95% delle richieste; solo il 5% più lento ha impiegato di più. Il p50 è la mediana, l’esperienza tipica. Il p99 e il p99.9 descrivono la coda (tail): le richieste più lente, che spesso sono proprio quelle che gli utenti notano e di cui si lamentano.

Perché i percentili battono le medie

Prendi 100 richieste: 90 impiegano 100 ms e 10 impiegano 2.000 ms.

Statistica Valore
Media 290 ms
p50 (mediana) 100 ms
p95 2.000 ms
p99 2.000 ms

La media di 290 ms non descrive nessuna richiesta realmente avvenuta. Sembra accettabile, eppure un utente su dieci ha aspettato due secondi. I percentili mostrano entrambi i fatti: la maggior parte delle richieste è veloce e la coda è molto lenta. Inoltre le medie vengono spostate da pochi outlier estremi, mentre la mediana no.

La coda conta più di quanto sembri. Il caricamento di una singola pagina spesso effettua molte chiamate al backend e una sessione utente comprende molti caricamenti di pagina, quindi una buona parte degli utenti incapperà in almeno una richiesta lenta da p99 durante una visita.

Usare i percentili nei test

Gli obiettivi di performance e i gate andrebbero scritti come percentili. In k6:

export const options = {
  thresholds: {
    http_req_duration: ['p(50)<200', 'p(95)<500', 'p(99)<1500'],
  },
};

Riporta diversi percentili insieme (p50, p95, p99, max), accanto a throughput e tasso di errore, perché ognuno racconta una parte diversa della storia.

Errori comuni

  • Fare la media dei percentili. La media dei p95 di dieci server non è il p95 complessivo. I percentili vanno calcolati sui dati grezzi aggregati o da istogrammi combinabili.
  • Troppo pochi campioni. Un p99 calcolato su 200 richieste si basa su due soli punti. Esegui il test abbastanza a lungo da avere numeri significativi nella coda.
  • Ignorare gli errori. Una richiesta che fallisce subito in 5 ms può far sembrare migliore la latenza. Leggi sempre la latenza insieme al tasso di errore.
  • Coordinated omission. Uno strumento di carico che aspetta ogni risposta lenta prima di inviare la richiesta successiva manda silenziosamente meno richieste durante i rallentamenti, sottostimando la latenza di coda. Generare il carico per tasso di arrivo (modello aperto) riduce questo problema.

Scrivi per cercare in tutto SDETRole.

Ricerca full-text con Pagefind · funziona nel tuo browser Apri la pagina di ricerca →