
저는 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이 포함되어 있습니다. 불행히도 루트로서도 해당 파일을 변경할 수 없습니다. 내 사용자가 perf
sudo 권한 없이 사용할 수 있도록 하려면 어떻게 해야 합니까?
루트가 필요하지 않은 벤치마킹하려는 응용 프로그램이 있는데 이를 벤치마킹하기 위해 루트로 실행하고 싶지 않습니다.
답변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.