Mar*_*ing 9 profiling linux-kernel perf
我想使用该perf
实用程序为我的程序收集测量值。它在带有 Debian 9 的共享集群机器上运行,默认情况下 /proc/sys/kernel/perf_event_paranoid
设置为 3,因此不允许我收集测量值。在更改它之前,我想知道这意味着什么。
是否只是安全性允许其他用户分析由其他用途运行的内容并因此获得洞察力?我们不关心这个,因为无论如何它都是用户的内部圈子。或者也许是性能,这也会影响其他人?
Ste*_*itt 11
这只是安全性,性能不受影响(至少,在perf
未运行时;即使如此,perf
的影响应该是最小的)。更改perf_event_paranoid
不会改变系统的性能特征,无论是否perf
正在运行。
内核文档中详细讨论了的安全含义perf
。建议为有权访问的用户设置一个组perf
,并perf
为该组设置适当的功能,而不是更改perf_event_paranoid
:
cd /usr/bin
groupadd perf_users
chgrp perf_users perf
chmod o-rwx perf
setcap cap_sys_admin,cap_sys_ptrace,cap_syslog=ep perf
Run Code Online (Sandbox Code Playgroud)
并将自己添加到perf_users
组中。
内核的 5.8 版增加了一个专用功能,因此cap_sys_admin
可以将最后一个命令简化为:
setcap cap_perfmon,cap_sys_ptrace,cap_syslog=ep perf
Run Code Online (Sandbox Code Playgroud)