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⬅ <Комьюнити />
Яндекс выпустил в 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