Cómo medir la Latencia correctamente en 7 minutos
Medir la latencia correctamente requiere que tenga datos de calidad. Hay una razón por la que el «Global CEO Outlook 2016» de KPMG encontró que el 84% de los CEO están preocupados por la calidad de los datos en los que basan sus decisiones y es porque con demasiada frecuencia los datos pueden inducir a error.
La diferencia entre las empresas que se preocupan por sus datos y no lo hacen es enorme. Los investigadores del MIT descubrieron que las empresas que han adoptado un diseño basado en datos tienen un rendimiento que es 5-6% mayor de lo que se esperaría, dadas sus otras inversiones y el uso de la tecnología de la información. Esta razón por sí sola hace que la comprensión de la latencia sea fundamental para el éxito empresarial.
En solo 7 minutos, aprenderá todo lo que necesita saber sobre la medición de la latencia
- cómo medir la latencia
- por qué es importante medirla correctamente
- errores comunes al observar sus datos de latencia
- la criticidad de la retroalimentación instantánea
- por qué se requieren datos sin muestrear
¿Qué es la latencia?
Dictionary.com define latencia como»el período de retardo en el que un componente de un sistema de hardware está esperando que otro componente ejecute una acción». En términos más simples, esto significa la cantidad de tiempo entre llamar a una función y su ejecución real. La latencia es inherente a todos los sistemas; incluso si tuviéramos un sistema perfecto (que no existe), estaría latente la cantidad de tiempo que le toma a los electrones en la computadora cambiar los transistores de encendido a apagado o viceversa.
La latencia en operaciones pequeñas no es un gran problema, pero al manejar millones de operaciones, hay millones de latencias que se suman rápidamente. La latencia no se define por unidades/tiempo de trabajo, sino por cómo se comporta. Las herramientas de monitoreo informan el tiempo que tarda desde el inicio de una función hasta el final de la función.
La latencia puede tener un impacto importante en su negocio, por ejemplo, «Cuando se trata de velocidad móvil, cada segundo importa: por cada segundo adicional que tarda una página móvil en cargarse, las conversiones pueden disminuir hasta un 20%»(Fuente). Por lo tanto, es de vital importancia comprender su latencia lo mejor que pueda.
Errores comunes al analizar Los Datos de Latencia:
La latencia casi nunca sigue una distribución Normal, Gaussiana o Poisson. Incluso si su latencia sigue una de estas distribuciones debido a la forma en que observamos la latencia, hace que los promedios, las medianas e incluso las desviaciones estándar sean inútiles. Si, por ejemplo, está midiendo cargas de página, el 99,9999999999% de estas cargas puede ser peor que su mediana. (Haz clic para twittear esta estadística) Esto es parte de la razón por la que el muestreo aleatorio de tu latencia causa datos inexactos, pero más sobre esto más adelante.
En este punto, probablemente te estés preguntando si no estamos usando ninguna desviación estándar, ¿cómo podemos describir las latencias de manera significativa? La respuesta es que debemos mirar los Percentiles y los Máximos. La mayoría de la gente piensa para sí misma, de acuerdo, así que miro P95 y entiendo el «caso común». El problema con esto es que P95 va a ocultar todas las cosas malas. Como dice Gil Tene, CTO de Azul Systems, «es un» sistema de marketing», Alguien está siendo engañado.»
Tomemos por ejemplo este gráfico:
Cuando ve este gráfico, puede ver claramente por qué la mediana y el promedio no tienen un significado real, no muestran el área del problema. Cuando ves que el percentil 95 se dispara hacia la izquierda, crees que estás viendo el corazón del problema.
Esto, por supuesto, no es cierto, sin embargo, cuando va a investigar por qué su programa tuvo un contratiempo, no está viendo el peor 5% de lo que sucedió. Para obtener este tipo de pico se requiere que el 5% superior de los datos sea significativamente peor.
Ahora mire el mismo gráfico que también muestra el percentil 99.99:
Esa línea roja es el percentil 95, mientras que la verde es la línea del percentil 99,99. Como se puede ver claramente el percentil 95, solo muestra 2 de 22 de sus problemas! Esta es la razón por la que debe mirar todo el espectro de sus datos.
A pesar del hecho de que muchas personas pueden pensar que el último 5% de los datos no tiene tanta importancia. Claro, podría ser solo un reinicio de una máquina virtual o un contratiempo en su sistema, o algo así, pero si bien eso es cierto al ignorarlo, usted está diciendo que simplemente no sucede cuando podría ser una de las cosas más importantes para usted.
A Gil Tenel le gusta decir en negrita que » El indicador número uno del que nunca debe deshacerse es el valor máximo. Eso no es ruido, esa es la señal. El resto es ruido.»Si bien el máximo es de hecho un gran sencillo en un sistema a gran escala, a menudo no es práctico perseguir solo el caso máximo. Ningún sistema es perfecto y se producen contratiempos, en un sistema práctico a gran escala perseguir el máximo caso exclusivamente es a menudo una buena manera de quemar a su equipo de desarrollo.
Al observar el percentil 99.99, está viendo lo que le sucede a la gran mayoría de sus clientes y cualquier pico que vea allí, sabe que son problemas reales, mientras que cualquier pico en su máximo puede ser un contratiempo en su sistema. Cuando sus equipos de devops centran su esfuerzo en estos pequeños contratiempos, lo hacen a un gran costo de oportunidad, ya que no pueden trabajar en problemas más importantes.
Es de destacar que si su 99.99 y su máximo están muy cerca el uno del otro(y ambos están pinchados), es una gran señal de que este es un problema en el que su equipo debería trabajar. De esta manera, Gil tiene razón en que el máximo es una gran señal, pero está equivocado en que el resto de sus datos son solo ruido. Como puedes ver en este gráfico:
Nuestro 99.el percentil 99 y el máximo de nuestro ejemplo anterior coinciden exactamente. Esta es una gran señal de que lo que está viendo es un error real y no solo un contratiempo.
Promedio de Percentiles: Cómo la Precomputación le está Causando una medición errónea de la latencia:
Una trampa aún peor en la que caen las personas que simplemente mirar el percentil 95 es no reconocer que sus percentiles están promediados. El promedio de percentiles es estadísticamente absurdo; elimina todo significado de lo que está mirando. Ya hemos demostrado cómo los promedios no son buenos, al mirar la latencia, y si está buscando percentiles promediados, simplemente está de vuelta al punto de partida. Muchos software promedian sus percentiles, por ejemplo, este gráfico Grafana:
¡Te hayas dado cuenta o no antes de que todos los percentiles de esto sean promedio! Lo dice ahí mismo en el libro mayor del eje X. ¡CASI TODOS LOS SERVICIOS DE MONITOREO PROMEDIAN SUS PERCENTILES! Esto es una realidad debido a la precomputación. Cuando su servicio de monitoreo toma sus datos, están calculando el percentil de los datos para ese minuto.
Luego, cuando vayas a echar un vistazo a tu percentil 95, te están mostrando un promedio de todos tus percentiles. Este atajo para «su bien» para hacer que su servicio sea más rápido, en realidad, elimina toda la importancia estadística de sus datos.
Por qué Debe tener Datos sin muestrear para Medir la Latencia Correctamente:
Ya sea que lo sepa o no, las herramientas de monitoreo que participan en el muestreo de datos producen datos promediados. Casi todas las herramientas de monitoreo muestrean sus datos. Tomemos, por ejemplo, el registro de datos; tienen una gran pérdida de datos. Si les envías 3 millones de puntos en un minuto, no se los llevarán todos. En su lugar, muestrearán aleatoriamente los puntos y luego los agregarán en 1 punto por minuto.
Debe tener datos sin muestrear para comprender su latencia. Es inherente que con los datos muestreados no se puede acceder a la distribución completa! ¡Su máximo no es su máximo verdadero, ni su percentil global es una representación precisa de lo que está sucediendo!
Los Datos Muestreados exacerban la Omisión Coordinada!
Cuando muestra datos, omite datos. Digamos, por ejemplo, que tiene 10,000 operaciones sucediendo en un minuto enviando 2 puntos de datos cada uno a su sistema de monitoreo. Supongamos que tiene un error en su sistema y uno de estos puntos de datos muestra esto por cada 10.000 operaciones. Su sistema de monitoreo solo tiene una probabilidad de 1/20,000 de elegir esto como el punto de datos que le muestra como el máximo.
Si se ejecuta el tiempo suficiente, el punto de datos aparecerá eventualmente, pero como resultado, se verá como un caso de borde esporádico, a pesar de que le está sucediendo a uno de sus clientes cada minuto. Cuando no muestres datos, y tengas uno de estos picos, aparecerá claramente en tu percentil 99.99, y tu máximo aparecerá cerca de él, indicándote que tienes un error en tu programa. Sin embargo, cuando muestres tus datos, no aparecerán tan a menudo, lo que significa que no lo verás como un error, sino como un contratiempo. Esto significa que su equipo de ingeniería no se dará cuenta de la importancia de la misma.
No deje que su herramienta de monitoreo lo engañe haciéndole creer que sabe lo que está pasando con su latencia.
Elija una herramienta que no proporcione datos muestreados. Elige una herramienta que no promedia tus percentiles globales. ¡Comience una prueba gratuita de dos semanas hoy mismo!