Dans la gestion d'infrastructures cloud de grande envergure, même une légère baisse de performance peut entraîner un gaspillage significatif de ressources. Par exemple, chez Meta, une baisse de vitesse de 0,05 % d'une application peut sembler insignifiante, mais avec des millions de serveurs fonctionnant simultanément, ce léger retard peut se traduire par le gaspillage de plusieurs milliers de serveurs. Par conséquent, la détection et la résolution rapides de ces petites régressions de performance représentent un défi de taille pour Meta.
Pour résoudre ce problème, Meta AI a lancé FBDetect, un système de détection des régressions de performance en environnement de production capable de capturer les plus petites régressions, même aussi faibles que 0,005 %. FBDetect surveille environ 800 000 séries temporelles, couvrant plusieurs indicateurs tels que le débit, la latence, l'utilisation du CPU et de la mémoire, et impliquant des centaines de services et des millions de serveurs. Grâce à des techniques innovantes, telles que l'échantillonnage des traces de pile sur l'ensemble du cluster de serveurs, FBDetect peut détecter de subtiles différences de performance au niveau des sous-programmes.
FBDetect se concentre principalement sur l'analyse des performances au niveau des sous-programmes, ce qui permet de réduire la difficulté de détection d'une régression au niveau de l'application (0,05 %) à une variation au niveau des sous-programmes (5 %) plus facile à identifier. Cette approche réduit considérablement le bruit, rendant le suivi des changements plus pratique.
Le cœur technologique de FBDetect repose sur trois aspects principaux. Premièrement, il réduit la variance des données de performance grâce à la détection des régressions au niveau des sous-programmes, permettant ainsi l'identification rapide de régressions mineures. Deuxièmement, le système effectue un échantillonnage des traces de pile sur l'ensemble du cluster de serveurs pour mesurer précisément les performances de chaque sous-programme, ce qui est comparable à une analyse des performances dans un environnement à grande échelle. Enfin, pour chaque régression détectée, FBDetect effectue une analyse de la cause racine afin de déterminer si la régression est due à un problème temporaire, à une variation de coût ou à une modification réelle du code.
Après sept ans de tests en environnement de production réel, FBDetect possède une forte capacité anti-parasitage et peut filtrer efficacement les faux signaux de régression. L'introduction de ce système permet non seulement de réduire considérablement le nombre d'événements que les développeurs doivent examiner, mais aussi d'améliorer l'efficacité de l'infrastructure de Meta. Grâce à la détection de régressions mineures, FBDetect permet à Meta d'éviter chaque année le gaspillage d'environ 4000 serveurs.
Dans une grande entreprise comme Meta, qui possède des millions de serveurs, la détection des régressions de performance est d'une importance capitale. FBDetect, grâce à ses capacités de surveillance avancées, améliore non seulement le taux de détection des régressions mineures, mais fournit également aux développeurs des outils efficaces d'analyse de la cause racine, ce qui contribue à résoudre rapidement les problèmes potentiels et à optimiser le fonctionnement de l'ensemble de l'infrastructure.
Accès à l'article : https://tangchq74.github.io/FBDetect-SOSP24.pdf
Points clés :
🔍 FBDetect peut détecter de minuscules régressions de performance, jusqu'à 0,005 %, améliorant considérablement la précision de la détection.
💻 Le système couvre environ 800 000 séries temporelles, impliquant plusieurs indicateurs de performance, et permet une analyse précise dans un environnement à grande échelle.
🚀 Après sept ans d'utilisation réelle, FBDetect a permis à Meta d'éviter le gaspillage d'environ 4000 serveurs par an, améliorant ainsi l'efficacité globale de son infrastructure.