
Estoy ejecutando pruebas de Debian con el kernel 4.1 y la versión 4.1 de la perf
herramienta. En esta versión parecen haber agregado algún tipo de protección para evitar que los usuarios normales recopilen datos de esa herramienta. Entonces, ejecutarlo perf
como usuario normal dará este error:
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
contiene 3 en mi instalación. Lamentablemente no puedo cambiar ese archivo ni siquiera como root. ¿Cómo puedo permitir que mi propio usuario use perf
sin derechos sudo?
Tengo una aplicación que me gustaría comparar y que no necesita root y no quiero ejecutarla como root para compararla.
Respuesta1
Los archivos /proc
que se pueden escribir generalmente se modifican haciendo eco de un valor en ellos. Deberías intentarlo:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
Los archivos a continuación /proc/sys/
también tienen elsistemacomando para un fácil acceso, por lo que en su lugar puede hacer:
sudo sysctl -w kernel.perf_event_paranoid=1
(aunque el -w
paraescribirparece ser opcional). Para asegurarse de que esto se haga en el momento del arranque, cree su propio /etc/sysctl.d/99-mysettings.conf
archivo con la línea
kernel.perf_event_paranoid=1
Elija un nombre de archivo que no anule los archivos existentes en /run/sysctl.d/
y /usr/lib/sysctl.d/
. Verhombre syctl.d.