Ejecute perf sin derechos de root

Ejecute perf sin derechos de root

Estoy ejecutando pruebas de Debian con el kernel 4.1 y la versión 4.1 de la perfherramienta. 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 perfcomo 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_paranoidcontiene 3 en mi instalación. Lamentablemente no puedo cambiar ese archivo ni siquiera como root. ¿Cómo puedo permitir que mi propio usuario use perfsin 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 /procque 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 -wparaescribirparece ser opcional). Para asegurarse de que esto se haga en el momento del arranque, cree su propio /etc/sysctl.d/99-mysettings.confarchivo 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.

información relacionada