Imagine que você está analisando o tempo de resposta de uma API crítica no seu sistema. O dashboard mostra uma média de 200ms. Parece ótimo, certo? Seus SLAs provavelmente exigem algo em torno de 500ms, então você está confortavelmente dentro das expectativas.
Mas aqui está o problema: a média está mentindo para você.
O problema com médias
A média aritmética é uma das métricas mais intuitivas que conhecemos. Somamos todos os valores e dividimos pela contagem. Simples, familiar e profundamente enganosa quando aplicada a tempos de resposta.
Considere este cenário real: você tem 100 requisições por segundo. 95 delas respondem em 100ms. Mas 5 delas levam 2 segundos cada. Qual é a média?
(95 × 100ms + 5 × 2000ms) / 100 = 195ms
A média diz 195ms. Mas 5% dos seus usuários estão esperando 10 vezes mais do que os outros. Se você tem 1 milhão de requisições por dia, são 50.000 usuários com uma experiência terrível — e a média não conta essa história.
A média é uma mentira estatística que esconde os usuários que mais sofrem.
O que são percentis
Um percentil representa o valor abaixo do qual uma determinada porcentagem de observações cai. Em outras palavras:
- P50 (mediana): 50% das requisições são mais rápidas que este valor
- P90: 90% das requisições são mais rápidas
- P95: 95% das requisições são mais rápidas
- P99: 99% das requisições são mais rápidas
Voltando ao nosso exemplo: o P95 seria aproximadamente 100ms (porque 95% das requisições estão nessa faixa), mas o P99 seria próximo de 2000ms. Essa diferença brutal entre P95 e P99 é exatamente o que a média esconde.
Por que P95 e P99 importam
Há uma razão pela qual empresas como Amazon, Google e Netflix monitoram obsessivamente P99 e até P99.9: esses são os usuários que mais importam para o negócio.
Pense nisso: quem são os usuários que mais frequentemente caem no P99?
- Usuários com carrinhos grandes (mais dados para processar)
- Usuários durante momentos de pico (mais concorrência)
- Usuários frequentes (mais histórico, mais complexidade)
- Usuários em dispositivos ou conexões lentas (timeouts parciais)
Em outras palavras: frequentemente seus melhores clientes, nos momentos mais críticos, têm a pior experiência. E a média não mostra isso.
A Lei da Cauda Longa
Sistemas distribuídos têm uma característica peculiar: quanto mais serviços uma requisição atravessa, maior a probabilidade de cair na cauda longa de latência.
Se uma requisição precisa consultar 5 serviços em paralelo, e cada serviço tem 1% de chance de responder lentamente, a requisição completa tem aproximadamente 5% de chance de ser lenta. Se são 10 serviços, 10%. A matemática trabalha contra você.
Isso significa que em arquiteturas de microsserviços, o P99 é ainda mais crítico do que em monolitos. E é exatamente nessas arquiteturas que a média se torna mais enganosa.
Como interpretar percentis
Aqui está um guia prático para interpretar seus percentis:
P50 vs P99: A proporção
Uma regra útil: se seu P99 é mais de 5x maior que seu P50, você tem um problema de consistência. O sistema funciona bem na maior parte do tempo, mas tem falhas significativas em casos específicos.
Estabilidade sob carga
Em sistemas saudáveis, percentis devem permanecer relativamente estáveis conforme a carga aumenta. Se seu P99 dispara enquanto P50 permanece estável, você tem um gargalo que afeta apenas algumas requisições — provavelmente contenção de recursos ou limites de pool.
Degradação gradual vs colapso
Observe como os percentis se comportam próximo à capacidade máxima. Um aumento gradual indica degradação controlada. Um salto abrupto indica um ponto de inflexão — você encontrou um limite do sistema.
Definindo SLAs com percentis
Se você ainda define SLAs baseados em médias, está assumindo riscos desnecessários. Uma abordagem mais robusta:
- P50 < 200ms: Experiência típica aceitável
- P95 < 500ms: Maioria dos usuários satisfeitos
- P99 < 1s: Casos extremos ainda toleráveis
- P99.9 < 2s: Ninguém abandona por timeout
Note que os valores específicos dependem do seu contexto. O que importa é ter metas para múltiplos percentis, não apenas para a média ou um único ponto.
Na prática: O que monitorar
Para cada endpoint ou serviço crítico, você deveria estar coletando e visualizando:
- P50, P95, P99 em tempo real (últimos 5-15 minutos)
- Tendência histórica desses percentis (últimos 7-30 dias)
- Comparação entre períodos de baixa e alta carga
- Alertas baseados em desvios de percentis, não da média
Se seu sistema de monitoramento só oferece médias, você está voando cego. Investir em observabilidade que suporte percentis é um dos melhores retornos sobre investimento em infraestrutura.
Conclusão
Da próxima vez que alguém disser "nosso tempo de resposta médio é X", faça a pergunta que realmente importa: "E o P99?"
A diferença entre um sistema que "funciona bem na média" e um sistema que "funciona bem para todos os usuários" está nos percentis. E essa diferença é frequentemente a diferença entre um produto que usuários toleram e um produto que usuários amam.
Você não quer saber como seu sistema performa na média. Você quer saber como ele performa quando mais importa.