Preciso executar a perf
ferramenta userspace como administrador do sistema (raiz) ou posso executá-la (ou pelo menos alguns subcomandos) como um usuário comum?
linux
kernel
not-root-user
perf-event
Jakub Narębski
fonte
fonte
perf
ferramenta (que é / pode não ser trivial).perf
está nolinux-tools
pacote, então a instalaçãoperf
é simples.Respostas:
O que você pode fazer
perf
sem ser root depende da configuração do sysctl .kernel.perf_event_paranoid
kernel.perf_event_paranoid
= 2: você não pode fazer nenhuma medida. Operf
utilitário ainda pode ser útil para analisar os registros existentes comperf ls
,perf report
,perf timechart
ouperf trace
.kernel.perf_event_paranoid
= 1: você pode rastrear um comando comperf stat
ouperf record
e obter dados de criação de perfil do kernel.kernel.perf_event_paranoid
= 0: você pode rastrear um comando comperf stat
ouperf record
e obter dados de eventos da CPU.kernel.perf_event_paranoid
= -1: você obtém acesso bruto aos pontos de rastreamento do kernel (especificamente, é possívelmmap
o arquivo criado porperf_event_open
, não sei quais são as implicações).fonte
cat /proc/sys/kernel/perf_event_paranoid
retorna 1, então parece que eu seria capaz de fazer pelo menos algumas medições (BTW. qual é a diferença entre "dados de perfil do kernel" e "dados de eventos da CPU"? Referência é suficiente)perf stat awk 'BEGIN{for(i=0;i<10000000;i++){}}'
, mostrará contagens precisas de ciclos e instruções do espaço do usuário e você pode até obter contagens parauops_issued.any
assim por diante), mas não obtém contagens para código executado durante chamadas / interrupções do sistema. Portanto, a frequência da CPU relatada (ciclos / tempo) é pelo menos um pouco menor que a real devido ao tempo gasto no kernel. Veja também Que restrição perf_event_paranoid == 1 está realmente colocando no x86 perf?