Мгновенный профайлинг CPU через perf без перезапуска

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

perfпрофайлингflamegraph

👁 Когда сервис начинает потреблять CPU, многие идут в логи или пытаются воспроизвести проблему локально. Это долго и часто бесполезно. В Linux можно прямо на проде посмотреть, где именно процесс тратит CPU, без пересборки и без остановки — через perf.

📝 Снятие профиля CPU с работающего процесса

perf позволяет за несколько секунд собрать статистику по функциям, где процесс реально проводит время. Ты сразу видишь «горячие» функции в реальном времени — будь то системные вызовы, libc или твой код.

sudo perf top -p 12345

📝 Запись профиля для последующего анализа

Если нужно более детально разобрать поведение, можно записать профиль и потом изучить его. Флаг -g добавляет call stack, что позволяет понять не только где CPU тратится, но и по какому пути вызовов.

sudo perf record -p 12345 -g -- sleep 10
sudo perf report

📝 Быстрый flamegraph без пересборки приложения

Для наглядности можно собрать flamegraph и увидеть узкие места визуально. Это даёт чёткое понимание, какие функции реально «горят» под нагрузкой.

sudo perf script > out.perf
stackcollapse-perf.pl out.perf > out.folded
flamegraph.pl out.folded > flame.svg

❗️ perf — один из самых мощных инструментов Linux, который часто игнорируют. Он позволяет за минуты найти реальные узкие места CPU, не трогая код и не останавливая прод.

tags: #linux #полезно #оптимизация

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот терминала с командами perf (sudo perf top, perf record -p 12345 -g, perf script) и последовательностью команд для генерации flamegraph; бренд RECURA внизу.
Терминал с готовыми командами для быстрого профайлинга CPU и генерации flamegraph.

Читайте так же