Perforator



Яндекс выпустил в open source систему Perforator — инструмент для непрерывного профилирования, который используется внутри компании для анализа производительности сервисов.



Основные преимущества Perforator:



Низкий оверхед при работе (~0.1% замедления на профилируемых процессах)

Поддержка нативных языков (C++, C, Go, Rust) и некоторых интерпретируемых (например, Python 3.12+)

Возможность профилирования как CPU time, так и wall time

Возможность анализа A/B-тестов через специальные теги

Эффективная визуализация больших профилей (быстрая отрисовка даже для миллиона функций)



Технические особенности:



Использует eBPF для сбора данных внутри ядра Linux

Эффективная раскрутка стека через упрощенный DWARF

Хранение профилей в S3 и ClickHouse для масштабируемости

Написан на Go, C и C++



Основные ограничения:



Требует Linux-ядра версии 5.4 или новее

Пока работает только на x86-64



Потребляет заметное количество памяти (единицы ГБ на больших хостах)



Perforator доступен для локального использования как замена perf record, а также может быть развернут на кластере Kubernetes. Код проекта открыт под лицензиями MIT и GPL (для eBPF-программ).



Пост навигатор 👩‍💻



nikitasepi0l <Комьюнити />