我想使用该perf
实用程序来收集我的程序的测量结果。它在 Debian 9 的共享集群机器上运行,默认情况下设置 /proc/sys/kernel/perf_event_paranoid
为 3,因此不允许我收集测量结果。在更改它之前,我想知道这会产生什么影响。
难道仅仅是安全性允许其他用户分析其他用途运行的内容并因此获得见解吗?我们不关心这个,因为无论如何它都是用户的核心圈子。或者是性能,这也会影响其他所有人?
答案1
这只是安全性,性能不受影响(至少在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
并将您自己添加到该perf_users
组中。
内核版本 5.8 添加了专用功能,因此不必授予所有cap_sys_admin
,最后一个命令可以简化为
setcap cap_perfmon,cap_sys_ptrace,cap_syslog=ep perf