O que significa exatamente quando um processo “Time” parou no topo?

10

Analisarei por que estamos recebendo alertas de troca críticos e encontrarei algo como:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
14683 user1     30  10 16.0g 772m  744 S  0.3  0.3 277:24.87 6.5g MATLAB
14576 user1     30  10 8125m 1.1g  736 S  0.3  0.4 261:16.73 4.1g MATLAB

em que a coluna TIME + está congelada para esses processos.

Minha pergunta é, acima, o que isso implica?

Pelo que entendi, o tempo parado significa que é um processo inativo / não está sendo processado pela CPU. No entanto, o exemplo acima mostra 0,3% de uso da CPU, portanto, apesar de ser muito pequena, a coluna de tempo não deve continuar incrementando?

Esses processos estão "terminados"? Nesse caso, como eles são limpos? O usuário que os iniciou precisa reconhecê-los ou algo para que esses recursos sejam liberados?

    
por CptSupermrkt 26.03.2014 / 13:35

2 respostas

9

Se você executar um trabalho falso, como sleep 120 e, em seguida, assisti-lo em htop , perceberá que seu estado é S "SLEEP" e os processos TIME permanecerão em 0: 00.00 para o duração.

Isso porque o processo está consumindo 0 tempo de CPU, que é a intenção da coluna TIME . Ele rastreia a quantidade de tempo de CPU que um determinado processo utilizou.

Essa contagem pode ser confusa, às vezes, se um processo puder ser executado em vários núcleos de CPU, pois pode consumir mais tempo do que o disponível. Tudo o que acontece é que, se você tem um número X de núcleos, seu tempo pode aparecer como X * TIME.

    
por 26.03.2014 / 14:08
4

O motivo pelo qual você pode obter uma disparidade como essa é porque a coluna TIME + não leva em consideração o tempo de CPU usado pelos filhos mortos do processo listado. Então, imagino que as linhas exibidas indicam um aplicativo que é (possivelmente , rapidamente) gerando crianças que estão morrendo quase imediatamente ..

So, the CPU usage is due to spawned children which do not count in the TIME+ column. Você pode alterar a parte superior para acumular tempo usando a chave 'S'.

Mas eu acho que você está olhando os indicadores errados para o que você está procurando investigar.

strace -p <pid> é seu amigo aqui e permitirá que você dê uma espiada no processo de execução e o que exatamente ele está fazendo.

Strace tem uma infinidade de opções. Algumas opções notáveis incluem -f, -ff, -i, v, etc. Strace é uma ferramenta muito útil, então é melhor fazer um man strace e procurar por si mesmo nas opções que ele oferece para solucionar problemas como este

    
por 27.04.2014 / 17:18