Execute o “perf top” no processo de outro usuário

0

Temos um sistema CentOS 7 com duas contas de usuário:

  • Sally, para executar trabalhos de produção.
  • Tanya, para monitoramento e trabalhos interativos.

Sally executa um trabalho específico que Tanya precisa monitorar usando perf top . Tanya tentou executar perf top -p PID , mas sai com um erro:

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

Definimos perf_event_paranoid para 0 e -1 , mas ocorreu o mesmo erro.

Sally está disposta a permitir o monitoramento de todos os seus processos por Tanya. Habilitar apenas um PID também seria OK (por exemplo, Sally poderia executar um script toda vez que iniciasse o processo para permitir o monitoramento por Tanya ... se eles soubessem o que escrever nesse script).

Se estivéssemos discutindo o GDB, parece que a resposta seria gdbserver ou sudo . Existe alguma maneira de usar perf para monitorar os trabalhos de Sally sem se tornar Sally? Sally e Tanya confiam um no outro, mas preferem não usar a representação, a menos que seja absolutamente necessário.

    
por John Zwinck 06.07.2017 / 06:00

0 respostas