Fehlerbehebung bei einem Einzelfall: Migration der Suchinfrastruktur von Pinterest zu Kubernetes
Die Suchinfrastruktur von Pinterest, Manas, wurde zu Kubernetes migriert, aber ein Leistungsproblem wurde entdeckt, bei dem ein von einer Million Suchanfragen 100-mal länger dauerte als üblich. Das Problem wurde untersucht und es wurde festgestellt, dass ein Überwachungsprozess, cAdvisor, das Problem verursachte. cAdvisor scannete jede 30 Sekunden die gesamte Seiten-Tabelle, um die Gesamtzahl der von einem Prozess referenzierten Bytes im Arbeitsspeicher zu berechnen, was zu Konflikten mit der speicheraufwändigen Blattverarbeitung in Manas führte. Dies verursachte die Latenzspitzen in den Suchanfragen. Die Untersuchung umfasste das Profiling von Suchsystemen, das Debuggen von Leistungsproblemen, Linux-Kernel-Features und Speicherverwaltung. Die Wurzel des Problems wurde als cAdvisors Arbeitsmenge-Größe-Schätzung (WSS) identifiziert, die standardmäßig aktiviert war und den Speicher-Konflikt verursachte. Das Problem wurde gelöst, indem cAdvisors WSS-Schätzung für alle PinCompute-Knoten deaktiviert wurde. Dieser Fix war ein wichtiger Meilenstein für Pinterests Kubernetes-Plattform, der es ermöglichte, andere Online-Dienste auf die Plattform zu migrieren. Die Untersuchung hob die Bedeutung von Ressourcen-Isolation, der Verkleinerung des Problemsraums und der Verwendung von Blackbox-Debugging-Strategien hervor. Die Erfahrung zeigte auch, dass manchmal eine gute genug Lösung ausreichend ist und es nicht notwendig ist, eine exakte Lösung zu finden, um voranzukommen.