Existe uma maneira breve de visualizar o principal uso de recursos (CPU, memória ou até mesmo largura de banda) de um programa após sua execução?

2

Eu sei que posso usar top para ver o CPU & amp em tempo real em geral Uso de memória,
e nload para uso geral de largura de banda em tempo real.

Mas desejo ver o máximo (ou médio) de CPU, memória e & uso de largura de banda de um programa após sua execução.
Assim como time my_command fez na estimativa de gasto de tempo do programa.

Existe uma maneira breve de fazer isso no Linux / Unix?

    
por Zen 01.09.2015 / 15:21

1 resposta

5

Se o sistema suportar a contabilidade do processo e a contabilidade estiver ativada, pode haver registros disponíveis no arquivo contábil do processo, por exemplo, no RedHat Linux:

$ grep -q BSD_PROCESS_ACCT=y /boot/config-* && echo hooray
hooray
$ sudo touch /var/log/pacct
$ sudo accton /var/log/pacct
$
...
$ sudo accton   # turn it off

A análise do arquivo acct(5) é deixada como um exercício para o leitor.

No entanto, isso é global, portanto, pode não ser adequado para um sistema com uma carga pesada de criação de novos processos. Por processo, a chamada getrusage(2) deve gerar estatísticas de CPU e memória, possivelmente por meio de um wrapper com o sinalizador RUSAGE_CHILDREN para relatar processos filhos nos quais você está interessado.

A largura de banda da rede pode ser mais difícil de obter, especialmente em uma base por processo.

Outras ferramentas, como DTrace ou Ftrace também podem ser de interesse.

    
por 01.09.2015 / 18:31