Déboguer l'échec une fois sur ... Note

Déboguer l'échec une fois sur un million : Migration de l'infrastructure de recherche de Pinterest vers Kubernetes

L'infrastructure de recherche de Pinterest, Manas, a été migrée vers Kubernetes, mais un problème de performance a été découvert où une requête de recherche sur un million prenait 100 fois plus de temps que d'habitude. Le problème a été étudié et il a été constaté qu'un processus de surveillance, cAdvisor, était à l'origine du problème. cAdvisor scannait la table des pages entière toutes les 30 secondes pour calculer le nombre total d'octets de mémoire référencés par un processus, ce qui provoquait des conflits avec le traitement de feuilles intensif en mémoire de Manas. Cela entraînait des pics de latence dans les requêtes de recherche. L'enquête a impliqué le profilage des systèmes de recherche, le débogage des problèmes de performance, les fonctionnalités du noyau Linux et la gestion de la mémoire. La cause profonde a été identifiée comme étant l'estimation de la taille de l'ensemble de travail (WSS) de cAdvisor, qui était activée par défaut et provoquait la contention de la mémoire. Le problème a été résolu en désactivant l'estimation du WSS de cAdvisor pour tous les nœuds PinCompute. Cette correction a été une étape majeure pour la plateforme Kubernetes de Pinterest, permettant à d'autres services en ligne d'être déplacés vers la plateforme. L'enquête a souligné l'importance de l'isolation des ressources, de la réduction de l'espace de problèmes et de l'utilisation de stratégies de débogage en boîte noire. L'expérience a également montré que, parfois, une solution suffisamment bonne est suffisante, et qu'il n'est pas nécessaire de trouver une solution exacte pour avancer.
CdXz5zHNQW_dc6w46JhEJ.png