Гид по технологиям

Установка и использование perf на CentOS 8

• 4 min read • Linux • Обновлено 22 Nov 2025
Perf на CentOS 8: установка и использование
Perf на CentOS 8: установка и использование

Обложка: обзор инструмента perf в Linux

Perf — это инструмент анализа производительности в Linux. Он предлагает набор подкоманд для статистического профилирования всей системы, поддерживает tracepoints, программные и аппаратные счётчики производительности, а также динамические пробки (dynamic probes). Perf полезен для решения сложных задач производительности и устранения неполадок.

Что понадобится

  • Сервер под управлением CentOS 8.
  • Доступ под root или права sudo.

Важно: для анализа с символами ядра и приложений может потребоваться пакет с отладочными символами (kernel-debuginfo) и доступ к соответствующим репозиториям.

Установка perf

Пакет perf доступен в стандартном репозитории CentOS 8. Установите его командой:

dnf install perf -y

После установки можно вывести список подкоманд perf:

perf --help

Вы увидите перечисление доступных подкоманд и опций.

Список подкоманд perf

Perf stat — базовая статистика для команды

perf stat запускает указанную команду и собирает статистику её выполнения (количество тактов CPU, кэш-промахи, вызовы и т. п.).

Показать список предопределённых событий в системе можно так:

perf list stat

Список событий perf stat

Пример: собрать статистику для команды free -m:

perf stat free -m

Результат покажет суммарные счётчики для выполнения команды (время, CPU cycles, instructions и т.д.).

Статистика для free -m

Совет: используйте perf stat для быстрого сравнения двух реализаций или изменений конфигурации (A/B), оценивая относительное изменение счётчиков.

Perf top — интерактивный сэмплинг в реальном времени

perf top генерирует профиль счётчиков производительности в реальном времени и похож по духу на top/htop, но с фокусом на функции/символы, потребляющие CPU.

Посмотреть все известные типы событий:

perf top -a

perf top со всеми событиями

Показать только события, связанные с cpu-clock:

perf top -e cpu-clock

perf top — cpu-clock

Когда использовать: для поиска «горячих» функций или модулей в работающей системе. Это быстрый способ увидеть, где тратится время CPU.

Perf record и perf report — запись и анализ профиля

perf record запускает команду и сохраняет профиль в файл perf.data в текущей директории:

perf record df -h

perf record сохраняет профиль в perf.data

Затем perf report анализирует этот файл и генерирует плоский или графовый профиль:

perf report

Отчёт perf report

perf report полезен для детального разбора, какие функции и строки кода потребляли ресурсы во время записи.

Краткая методика быстрого профилирования (mini-методология)

  1. Сформулируйте гипотезу (что именно медленнее или вызывает нагрузку).
  2. Соберите базовую метрику: perf stat <команда> и системные метрики (top, vmstat).
  3. Запустите perf record для реплицируемого сценария работы приложения.
  4. Проанализируйте perf report, найдите горячие пути.
  5. Внесите изменение, повторите шаги 2–4 для валидации.

Роли и контрольные списки

  • Системный администратор:

    • Установить perf и проверить версию.
    • Проверить права (perf_event) и значение perf_event_paranoid.
    • Собрать системную статистику и отчёт.
  • Разработчик:

    • Запустить perf record для локального теста.
    • Проанализировать отчёт и сопоставить со строками кода.
    • Протестировать оптимизацию и регистрировать изменения.
  • SRE/инженер по производительности:

    • Сравнить профили до и после изменений.
    • Автоматизировать сбор профилей в тестовом окружении.

Когда perf не показывает ожидаемых данных — частые причины

  • Ограничения прав: проверьте значение /proc/sys/kernel/perf_event_paranoid. Для записи системных профилей иногда требуется 0 или -1.
cat /proc/sys/kernel/perf_event_paranoid
  • Отсутствие отладочных символов: для читаемых имен функций может потребоваться пакет kernel-debuginfo или символьные таблицы приложений.
  • Версия ядра или дистрибутива не поддерживает некоторые аппаратные счётчики на конкретной платформе.
  • Контейнерные окружения: в контейнерах могут быть ограничения на доступ к производительности хоста.

Important: изменять perf_event_paranoid следует осторожно — это влияет на безопасность и видимость профайлинга между пользователями.

Подходы и альтернативы

  • Если нужно трассировать системные вызовы — используйте strace для детального трейсинга конкретного процесса.
  • Для распределённого профилирования приложений рассмотрите eBPF-инструменты (bpftrace, bcc) или специализированные APM.
  • Для профилирования памяти — valgrind massif или massif-visualizer; для heap-профайлинга Java — jmap/jfr.

Критерии приёмки

  • Установлен perf и доступен в PATH.
  • perf stat корректно собирает счётчики для тестовой команды.
  • perf record создаёт perf.data, perf report отображает читаемый отчёт (хотя бы с именами функций).
  • Повторный прогон с изменением конфигурации показывает ожидаемое изменение в счётчиках.

Краткий глоссарий

  • tracepoint — точка трассировки в ядре или приложении, позволяющая фиксировать события.
  • счётчик (counter) — метрика аппаратного/программного происхождения (CPU cycles, cache-misses).
  • sampling — сбор профиля по выборочным сэмплам, а не трассировка каждого события.

Итоги

perf — мощный и гибкий инструмент для системного профилирования на Linux. Он покрывает широкий набор сценариев: от быстрой статистики отдельных команд до подробного анализа записанных профилей. Начните с perf stat и perf top, затем переходите к perf record + perf report для детального разбора «горячих» участков кода. Обязательно учитывайте права доступа и наличие отладочных символов для лучшей читаемости отчётов.

Полезные команды для быстрого старта:

dnf install perf -y
perf --help
perf stat <команда>
perf top -a
perf record <команда>
perf report
cat /proc/sys/kernel/perf_event_paranoid

Notes: для сложных случаев объединяйте данные perf с логами приложения и метриками системы (CPU, память, I/O) — только так вы получите полную картину.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро