无需 root 权限即可运行 perf

无需 root 权限即可运行 perf

我正在使用 4.1 内核和 4.1 版perf工具运行 Debian 测试。在这个版本中,他们似乎添加了某种保护措施,以防止普通用户从该工具收集数据。因此,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/也有系统控制命令以便于访问,因此您可以改为执行以下操作:

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/请参阅系统管理员

相关内容