
Я запускаю 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.