Como obter a utilização da CPU para um determinado processo

1

Estou executando o Ubuntu 14.04 na minha máquina. Preciso obter a utilização da CPU para um processo em execução em um intervalo de monitoramento necessário.

Eu tentei o seguinte, tenho algumas perguntas sobre eles.
 Considerei calcular o uso efetivo entre 2 pontos da seguinte forma:

Tempo de execução do processo (P) = utime + stime + cstime + cutime

Tempo total de execução da CPU (C) = Estou obtendo esse valor de / proc / stat.

Considerando um intervalo de monitoramento t, a utilização da CPU é calculada como

Uso da CPU = (P2 - P1) / (C2 - C1) * 100

Problema:

  1. O valor da leitura de uso da CPU compreende a soma total de todos os quatro núcleos (na minha máquina). Mas o topo mostra um valor dividido por 4. Descobri que existe um modo Irix que, se ativado (por padrão), fornece valores multiplicados por 4. O que eu quero saber é que valor está correto? Devo multiplicar o meu valor por 4? .
  2. Eu quero obter o uso em períodos de amostragem de digamos 1ms. Mas aparentemente / proc / stat não é atualizado na mesma taxa, e o nether é top. Qual é o menor período de amostragem com o qual posso usar este método?

Por favor me avise. Além disso, se quaisquer outras sugestões, por favor me avise. Também podemos escrever um módulo do kernel para fazer o mesmo na minha taxa de amostragem requerida? Existe algum módulo desse tipo?

Obrigado Ankit

    
por Ankit 12.12.2015 / 08:11

1 resposta

0

Que tal usar o cpustat? Isto tem a capacidade de monitorar processos específicos e permite monitorar a uma taxa de 0.3333Hz para cima. A opção -a permite especificar o tempo total da CPU em termos de todos os ticks da CPU, em vez de apenas um tick da CPU.

Por exemplo, 2 amostras por segundo no processo compiz para 120 amostras:

cpustat -a -p $(pidof compiz) 0.5 120 

Eu desenvolvi esta ferramenta para o Ubuntu para medir a utilização da CPU em dispositivos de baixa potência, e, portanto, eu o otimizei para usar o mínimo possível de sobrecarga da CPU. Para mais informações, consulte a página do projeto cpustat

    
por Colin Ian King 13.12.2015 / 01:07