Вопрос или проблема
Я на
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
в последних версиях. Не подавайте панику; функциональность по-прежнему доступна, хотя и через другие подкоманды.
Решение проблемы:
-
Поддержка
perf
: Убедитесь, что версииperf
и установленных пакетов актуальны. Командаuname -r
показывает версию ядра, и вы уже установили соответствующие инструменты, но полезно убедиться, что у вас последняя версия:sudo apt update sudo apt upgrade sudo apt install linux-tools-generic linux-tools-$(uname -r)
-
Использование
perf record
: Вместоperf trace
вы можете использовать командуperf record
, чтобы собрать данные о событиях и создать трассировочный файл. Например:sudo perf record -e sched:sched_switch -a
-
Просмотр доступных событий: Чтобы увидеть, какие события вы можете отслеживать, выполните:
perf list "sched:*"
Это покажет доступные события, связанные с планировщиком, которые вы можете использовать для записи.
-
Просмотр результатов: После завершения записи вы можете посмотреть результаты с помощью команды:
sudo perf report
Это даст вам возможность проанализировать данные, которые вы собрали.
Заключение
Хотя perf trace
непосредственно невозможно использовать в современных версиях, функциональность сохраняется через perf record
и другие команды. Надеюсь, это поможет вам решить вашу задачу. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью!