En la gestión de infraestructuras de nube a gran escala, incluso una pequeña disminución del rendimiento puede provocar un desperdicio significativo de recursos. Por ejemplo, en una empresa como Meta, una disminución del 0,05% en la velocidad de ejecución de una aplicación puede parecer insignificante, pero con millones de servidores funcionando simultáneamente, este pequeño retraso se acumula y puede resultar en el desperdicio de miles de servidores. Por lo tanto, detectar y solucionar estas pequeñas regresiones de rendimiento a tiempo supone un gran desafío para Meta.

image.png

Para solucionar este problema, Meta AI lanzó FBDetect, un sistema de detección de regresiones de rendimiento para entornos de producción que puede capturar las regresiones más pequeñas, incluso hasta un 0,005%. FBDetect puede monitorear aproximadamente 800.000 series temporales, que abarcan múltiples métricas como el rendimiento, la latencia, el uso de la CPU y la memoria, e involucran cientos de servicios y millones de servidores. Mediante el uso de tecnologías innovadoras, como el muestreo de rastreo de pila en todo el clúster de servidores, FBDetect puede capturar diferencias de rendimiento sutiles a nivel de subrutina.

image.png

FBDetect se centra principalmente en el análisis de rendimiento a nivel de subrutina, lo que permite reducir la dificultad de detección de una regresión a nivel de aplicación del 0,05% a un cambio a nivel de subrutina del 5%, más fácil de identificar. Este método reduce significativamente el ruido, haciendo que el seguimiento de los cambios sea más práctico.

El núcleo tecnológico de FBDetect se compone de tres aspectos principales. En primer lugar, mediante la detección de regresiones a nivel de subrutina, reduce la varianza de los datos de rendimiento, permitiendo que incluso las regresiones más pequeñas se identifiquen a tiempo. En segundo lugar, el sistema realiza un muestreo de rastreo de pila en todo el clúster de servidores para medir con precisión el rendimiento de cada subrutina, similar a un análisis de rendimiento en un entorno a gran escala. Por último, para cada regresión detectada, FBDetect realiza un análisis de la causa raíz para determinar si la regresión se debe a un problema temporal, un cambio de coste o una modificación real del código.

FBDetect ha sido probado durante siete años en entornos de producción reales y tiene una potente capacidad antiinterferencias, pudiendo filtrar eficazmente las señales de regresión falsas. La introducción de este sistema no sólo reduce significativamente el número de eventos que los desarrolladores necesitan investigar, sino que también mejora la eficiencia de la infraestructura de Meta. Gracias a la detección de pequeñas regresiones, FBDetect ayuda a Meta a evitar el desperdicio de unos 4000 servidores al año.

En una gran empresa como Meta, con millones de servidores, la detección de regresiones de rendimiento es especialmente importante. FBDetect, con su capacidad de monitorización avanzada, no sólo mejora la tasa de detección de regresiones menores, sino que también proporciona a los desarrolladores herramientas eficaces para el análisis de la causa raíz, lo que ayuda a solucionar los problemas potenciales a tiempo y a impulsar el funcionamiento eficiente de toda la infraestructura.

Enlace al artículo:https://tangchq74.github.io/FBDetect-SOSP24.pdf

Puntos clave:

🔍 FBDetect puede detectar regresiones de rendimiento mínimas, incluso hasta un 0,005%, lo que aumenta considerablemente la precisión de la detección.

💻 El sistema cubre aproximadamente 800.000 series temporales, abarca múltiples métricas de rendimiento y permite un análisis preciso en entornos a gran escala.

🚀 FBDetect, tras siete años de uso real, ha ayudado a Meta a evitar el desperdicio de unos 4000 servidores al año, mejorando la eficiencia general de la infraestructura.