
Estou executando testes debian com o kernel 4.1 e versão 4.1 da perf
ferramenta. Nesta versão eles parecem ter adicionado algum tipo de proteção para impedir que usuários normais coletem dados dessa ferramenta. Portanto, executar perf
como usuário normal apresentará este erro:
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
contém 3 na minha instalação. Infelizmente não consigo alterar esse arquivo nem como root. Como posso permitir que meu próprio usuário use perf
sem direitos sudo?
Eu tenho um aplicativo que gostaria de avaliar e que não precisa de root e não quero executá-lo como root para fazer benchmark.
Responder1
Os arquivos /proc
graváveis geralmente são alterados ecoando um valor neles. Você deveria tentar:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
Os arquivos abaixo /proc/sys/
também possuem osysctlcomando para fácil acesso, então você pode fazer:
sudo sysctl -w kernel.perf_event_paranoid=1
(embora o -w
paraescreverparece ser opcional). Para garantir que isso seja feito durante a inicialização, crie seu próprio /etc/sysctl.d/99-mysettings.conf
arquivo com a linha
kernel.perf_event_paranoid=1
Escolha um nome de arquivo que não substitua os arquivos existentes em /run/sysctl.d/
e /usr/lib/sysctl.d/
. Verhomem sysctl.d.