04/06/2020

Medindo corretamente a latência dos seus serviços

Para de usar a média como medida de latência dos seus serviços.

Sim, pode até parecer radical (não me entendam errado), mas se você utiliza apenas a média como medida de latência você pode estar deixando muita informação valiosa escapar. Digo isso por experiência própria, pois eu mesmo mal conhecia outras métricas.

O que é latência?

Latência é uma métrica muito importante em qualquer sistema, ela é a diferença entre o estímulo e a resposta, resumindo: quanto “a coisa” demora para acontecer.

Quando digo “a coisa”, isso vai depender do tipo de sistema que se está querendo medir. Em um banco de dados, por exemplo, a latência pode ser medida através do tempo que uma consulta demora para ser processada. Já em uma API ela geralmente é medida entre o tempo de request e response, em um sistema web ela pode ser medida como o tempo que sua página demora para ser carregada, e assim por diante.

Quanto menor for a latência, mais rápido nossas operações vão ser executadas, e hoje em dia com os sistemas distribuídos e de altas disponibilidades, ter uma latência baixa é quase que mandatório.

Qual o problema com a média?

A maioria das pessoas (e eu me coloco nessa lista), está acostumado a utilizar a média ou mediana para medir a latência nos seus sistemas, porém essa maneira pode trazer alguns probleminhas.

A melhor forma de mostrar é através de um exemplo.

Imagine que você tem o seguinte conjunto de amostras da latência do carregamento da página de login do seu sistema (medidas em milisegundos):

[70, 60, 30, 800, 50, 900, 40, 20]

Fazendo a média chegamos no valor de 246ms, mas olhando as amostras fica claro que esse valor não representa a realidade da latência do sistema. O que temos, na verdade, é que a maioria dos nossos usuários estão tendo uma experiência bem rápida (menor que 100ms), enquanto alguns uma experiência demorada (mais que 800ms).

O pior de tudo isso é que a nossa média está dando 246ms e isso não representa a realidade de nenhum dos nossos usuários, nem dos que estão tendo a melhor performance, muito menos daqueles que estão tendo uma pior experiência.

Resumindo, usar a média como medida de latência pode te enganar e dar uma sensação que não é a que está sendo sentida na prática.

Voltar