Запустить perf без прав root

Запустить perf без прав root

Я запускаю Debian Testing с ядром 4.1 и версией инструмента 4.1 perf. В этой версии они, похоже, добавили какую-то защиту, чтобы обычные пользователи не могли собирать данные из этого инструмента. Поэтому запуск perfот имени обычного пользователя приведет к такой ошибке:

perf stat ls
Error:
You may not have permission to collect stats.
Consider tweaking /proc/sys/kernel/perf_event_paranoid:
 -1 - Not paranoid at all
  0 - Disallow raw tracepoint access for unpriv
  1 - Disallow cpu events for unpriv
  2 - Disallow kernel profiling for unpriv

perf_event_paranoidВ моей установке содержится 3. К сожалению, я не могу изменить этот файл даже как root. Как мне разрешить своему пользователю использовать его perfбез прав sudo?

У меня есть приложение, которое я хотел бы протестировать, и для которого не нужны права root, и я не хочу запускать его от имени root для тестирования.

решение1

Файлы, /procкоторые доступны для записи, обычно изменяются путем эха значения в них. Вы должны попробовать:

sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'

Файлы ниже /proc/sys/также имеютsysctlкоманду для легкого доступа, поэтому вместо этого вы можете сделать:

sudo sysctl -w kernel.perf_event_paranoid=1

(хотя -wдляписатькажется, это необязательно). Чтобы убедиться, что это сделано во время загрузки, создайте свой собственный /etc/sysctl.d/99-mysettings.confфайл со строкой

kernel.perf_event_paranoid=1

Выберите имя файла, которое не будет перезаписывать существующие файлы в /run/sysctl.d/и /usr/lib/sysctl.d/. Смотретьчеловек sysctl.d.

Связанный контент