Camada Zero · 34 · Latência p50/p99 (por que a média mente)

A média é a métrica mais enganosa de latência que existe. Uma cauda de requests lentas puxa ela pra cima, e uma média baixa esconde um p99 horrível. Roda aqui embaixo, olha a distribuição, e veja o p99 contar a verdade que a média some debaixo do tapete.
0 ms2505007501000 ms
Média
p50 (mediana)
p95
p99
p99.9
Mexe no fan-out: simula uma página que faz N chamadas de backend e espera por todas. A latência da página é a da chamada mais lenta.
média p50 p95 p99 p99.9
A média trata todas as requests como iguais. Mas a cauda lenta tem origem real, e você já a conhece: pausa de GC (aula 13), cache miss (12), contenção de lock (08), context switch (15), retry de rede (18), page fault (14). O p99 é onde todas as "constantes" do Big-O (aula 01) aparecem juntas. É por isso que SLO e alerta moram no p99, não na média.

Percentil em Go

func percentile(lat []float64, p float64) float64 {
    sort.Float64s(lat) // O(n log n), aula 01
    idx := int(float64(len(lat)-1) * p)
    return lat[idx]
}

p50 := percentile(lat, 0.50)
p99 := percentile(lat, 0.99)
// nunca reporte só a média de latência

Tail amplification

// página com F chamadas independentes:
// P(todas rápidas) = 0.99^F
// F=100  ->  0.99^100 ≈ 37%
// logo ~63% das páginas pegam
// pelo menos 1 chamada no p99

🧠 Desafio — Latência & Percentis

Roda a distribuição e mexe no fan-out antes de responder. As duas últimas são de reflexão: escreve a sua e só então revela o modelo.