Perf trace недоступен на моем компьютере.

Вопрос или проблема

Я на

Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-45-generic x86_64)

Я установил пакеты perf

sudo apt install linux-tools-common linux-tools-generic linux-tools-$(uname -r)

но когда я пытаюсь запустить perf trace, он жалуется, что подкоманда недоступна

akhil@akhil-Inspiron-5559:~$ perf trace
perf: 'trace' не является командой perf. Смотрите 'perf --help'.
akhil@akhil-Inspiron-5559:~$ sudo perf trace
[sudo] пароль для akhil:
perf: 'trace' не является командой perf. Смотрите 'perf --help'.

тем не менее, я думаю, что он установлен, потому что когда я запускаю man perf trace, я получаю справочную страницу

PERF-TRACE(1)                                                                     руководство perf                                                                    PERF-TRACE(1)

ИМЯ
       perf-trace - инструмент, вдохновленный strace

КРАТКОЕ СОДЕРЖАНИЕ
       perf trace
       perf trace record

какие идеи о том, что может происходить?

ИЗМЕНЕНИЯ

В ответ на предложение @Romeo

akhil@akhil-Inspiron-5559:~$ perf-trace
perf-trace: команда не найдена
akhil@akhil-Inspiron-5559:~$ sudo perf-trace
[sudo] пароль для akhil:
sudo: perf-trace: команда не найдена

Команда trace больше не является частью perf: см. https://stackoverflow.com/questions/78878846/is-there-a-way-to-get-the-linux-cpu-scheduling-events-with-time

Вы правы, в более новых версиях perf нет буквальной команды ‘perf trace’. Однако функциональность все еще доступна; вы можете использовать, например, ‘perf record’ для захвата файла трассировки некоторых событий, которые происходят на вашей системе. См. также ‘perf list “sched:*”‘ для списка статических точек трассировки планировщика, к которым вы можете получить доступ с помощью perf record или других подкоманд perf.

Ответ или решение

К сожалению, команда perf trace, которую вы пытаетесь использовать, больше не является частью инструмента perf в последних версиях. Не подавайте панику; функциональность по-прежнему доступна, хотя и через другие подкоманды.

Решение проблемы:

  1. Поддержка perf: Убедитесь, что версии perf и установленных пакетов актуальны. Команда uname -r показывает версию ядра, и вы уже установили соответствующие инструменты, но полезно убедиться, что у вас последняя версия:

    sudo apt update
    sudo apt upgrade
    sudo apt install linux-tools-generic linux-tools-$(uname -r)
  2. Использование perf record: Вместо perf trace вы можете использовать команду perf record, чтобы собрать данные о событиях и создать трассировочный файл. Например:

    sudo perf record -e sched:sched_switch -a
  3. Просмотр доступных событий: Чтобы увидеть, какие события вы можете отслеживать, выполните:

    perf list "sched:*"

    Это покажет доступные события, связанные с планировщиком, которые вы можете использовать для записи.

  4. Просмотр результатов: После завершения записи вы можете посмотреть результаты с помощью команды:

    sudo perf report

    Это даст вам возможность проанализировать данные, которые вы собрали.

Заключение

Хотя perf trace непосредственно невозможно использовать в современных версиях, функциональность сохраняется через perf record и другие команды. Надеюсь, это поможет вам решить вашу задачу. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...