Perforator: Neues quelloffenes Profiling-Werkzeug von Yandex - LinuxCommunity
Perforator: Neues quelloffenes Profiling-Werkzeug von Yandex - LinuxCommunity
Der Suchmaschinenbetreiber Yandex veröffentlicht sein intern bereits genutztes Profiling Tool unter einer Open-Source-Lizenz. Programmierer und Server-Betreiber decken mit dem Werkzeug gezielt Performance-Probleme auf. Das Perforator genannte Tool beobachtet die laufende Software und sammelt dabei Daten über die Prozessorauslastung beziehungsweise den damit einhergehenden Energieverbrauch. Yandex zielt dabei vor allem auf die Analyse von Server-Diensten, nimmt aber prinzipiell jede Software unter die Lupe. An den gesammelten Informationen lässt sich wiederum ablesen, an welchen Stellen und in welchen Situationen die Anwendung besonders stark den Prozessor belastet. Die eigentliche Beobachtung durch den Perforator soll ohne Performance-Verluste geschehen. Die Ergebnisse sind folglich nicht durch die Messung verfälscht, zudem lässt sich der Profiler auch in produktiven Umgebungen einsetzen. Im Einzelnen wertet Perforator die Kernel- und Userspace-Stacks über die eBBF des Kernels aus. Die Informationen landen dabei in einem skalierbaren Speicher. Die Auswertung erfolgt über eine eigene Abfragesprache sowie eine grafische Benutzeroberfläche. Letztgenannte visualisiert die CPU-Auslastung in sogenannten Flame-Graphen. Perforator erzeugt zudem sPGO-Profile. Dies ermöglicht die Erstellung von Anwendungen mit Profile Guided Optimization (PGO) über Googles AutoFDO Tools. Derzeit unterstützt Perforator die Programmiersprachen C, C++, Go und Rust, in Arbeit sind bereits Java und Python. Der Quellcode des Perforators steht unter der MIT License, der im Linux Kernel laufende eBFS-Code unterliegt der GPL v2. Obwohl der Perforator erst in der Version 0.0.1 vorliegt, kommt er bereits auf „tausenden Servern bei Yandex“ zum Einsatz. Übersetzen muss man seinen Go-Code übrigens nicht selbst, auf GitHub steht er als fertige Anwendung bereit.
