Existe um comando para mostrar pontos de rastreio “ao vivo”, que inclui o PID?

0

Eu tentei examinar a documentação de perf script , perf trace e trace-cmd , incluindo a lista de comandos em "VEJA TAMBÉM".

Eu posso rastrear, e. sched:sched_process_exec "ao vivo" usando perf trace -a --no-syscalls -e sched:sched_process_exec . No entanto, ele mostra apenas o processo nome (por exemplo, ls ). Não mostra o PID, a menos que o ponto de rastreio tenha um parâmetro específico para ele. perf script sempre mostra o PID, mas não mostra a saída ao vivo; mostra o conteúdo de um arquivo perf.data .

Eu não preciso que isso seja um único comando, como btrace é para blktrace . Fico feliz em usar um pipeline, análogo a blktrace -d /dev/sda -o - | blkparse -i - .

(Ambos os comandos acima mostram PIDs :-). É frustrante ver que a família de comandos blktrace , que também usa eventos de rastreamento, pode imprimir a saída ao vivo no mesmo formato que pode imprimir os rastreamentos gravados. Não consigo encontrar esse poder nas ferramentas de rastreamento de propósito geral!)

    
por sourcejedi 21.11.2018 / 12:46

1 resposta

0

perf record -a --no-syscalls -e sched:sched_process_exec sh -c read | perf script

( sh -c read fornece uma maneira de parar este rastreio, basta pressionar Enter. Se eu omitir este comando e tentar interromper o pipeline com ctrl + C, minha saída será perdida, provavelmente porque também interrompe perf script ).

No entanto, esta saída não é "ao vivo", devido ao buffering. Por exemplo. executar o comando acima não mostra nada, mas pressionar enter faz com que ele pare e mostre uma linha para o exec () de sh . blktrace tem código de caso especial para lidar saída para um pipe, incluindo a desativação do buffer de armazenamento padrão. A tentativa de executar perf record sob o comando unbuffer fornece o erro "formato de arquivo incompatível"; Eu presumo que o erro vem de perf script .

man perf-report

...

OPTIONS

-i, --input= Input file name. (default: perf.data unless stdin is a fifo)

    
por 21.11.2018 / 13:37