Rastreie o uso da CPU do usuário por um período de tempo

1

Eu preciso acompanhar a quantidade de processos que um único usuário invocou e quanto tempo da CPU (ou%) esses processos consumiram por um determinado período de tempo.

O truque é que cada um desses processos normalmente é executado por uma fração de segundo e consome quase nenhuma CPU, mas eles são invocados por muito tempo por segundo. Portanto, "usuário ps -eo, pid, pcpu, time, args" não são confiáveis.

No final, eu queria um relatório dizendo algo como: "usuário foobar consumiu xxx CPU-TIME / CPU% durante os últimos xx segundos"

Alguém tem uma luz de como posso alcançá-lo? O SO é um AIX7.1, mas a questão se aplica também ao Linux RHEL7.

Obrigado antecipadamente.

    
por Dumb admin 02.02.2018 / 14:15

2 respostas

1

No AIX, é possível ativar o subsistema de contabilidade e usar uma combinação de acctprc1 e comandos prtacct para mostrar o uso da CPU pelo usuário .

    
por 03.02.2018 / 14:51
1

Você pode usar (Linux) cgroups na teoria. Você criará o cgroup personalizado, onde todos os processos do usuário estarão em execução. Então apenas observe o olho na contagem de carrapatos da CPU do cgroup (soma o sistema e o tempo do usuário) e você será capaz de calcular o% total de uso da CPU para um período de tempo selecionado a partir desses valores.

Doc: link

    
por 03.02.2018 / 12:05