Que unidades de tempo "top" usa?


59

Se eu emitir o comando "top" e receber resultados como:

PID   USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
00001 bob   25   0 77380 1212 1200 R 95.8  0.0  89122:13 fee         
00002 bob   25   0 77380 1196 1184 R 95.4  0.0  88954:14 fi         
00003 sam   18   0  427m  16m 6308 R 30.0  0.1  54:46.43 fo         
00004 sam   18   0  427m  16m 6308 R 26.5  0.1  52:55.33 fum         

Pergunta: Quais são as unidades na coluna "TIME +"?

O que eu tentei: (sugira uma estratégia melhor para pesquisar a documentação ...)

  • man top | grep -C 4 time ou
  • man top | grep <X>quando eu substituir minute, hour, day, ou HHpara X...

Respostas:


47

minutos: segundos. centésimos

Procurar "TIME +" ou "segundos" fornece a resposta, tipo (eu não chamaria a página de manual clara).

Esse formato é herdado do BSD, você também o obtém com ps uou ps lno Linux.


obrigado ... (Encontrei TIME + desde a primeira pesquisa, mas fiquei assustado); posso assumir que 89122: 13 está em unidades de MM: SS (89122 minutos e 13 segundos = 60 dias)?
Abe

1
@Abe Sim, 89122: 13 = 5347333 segundos ≈ 62 dias.
Gilles 'SO- stop be evil'

1
@Abe eu acho que nós podemos dividir esse dado tempo para o número de núcleos e obter a hora do relógio desde que começou ...
PJunior

@ Gilles Eu sou novo no Linux. A que horas significa TIME +? Por quanto tempo o trabalho está sendo executado?
precisa saber é o seguinte

@ mithusengupta123 Essa é a quantidade de tempo de CPU usada pelo processo. Pode ser muito menor do que o tempo em que o processo está em execução, se o processo não estiver vinculado à CPU, por exemplo, um processo que passa a maior parte do tempo ocioso aguardando para atender às solicitações.
Gilles 'SO- stop be evil' -

57

pse topexibir o tempo de CPU usado, não o tempo do relógio desde o início do processo. Uma maneira de verificar quando o processo foi iniciado é usar o seguinte comando. A data de criação do arquivo PID é quando o processo foi iniciado:

ls -ld /proc/pid

Portanto, para o processo 2303, seria:

ls -ld /proc/2303

2
Eu não vejo qualquer lugar onde Gilles disse que os valores mostraram hora do relógio ...
Chris Baixo

Bem, isso leva qualquer um a enganar, na minha opinião.
PJunior

15
Sua resposta é útil, mas afirmar que a 'outra resposta está totalmente errada' não é (na minha opinião) correta. A pergunta original é quais unidades são usadas. A 'outra resposta' responde a isso. Apenas não especifica que essa é uma medida do tempo da CPU, e não do tempo do relógio. Sua resposta esclarece isso e, portanto, é útil (mas não responde à pergunta original). Votarei sua resposta se você remover da sua resposta que a outra resposta está 'totalmente errada'.
Jason S

2
Isso parece não funcionar para processos de execução longa (pode ser que não funcione para trabalhos curtos também). Vejo que esse arquivo é atualizado por algum outro motivo também. Há uma outra maneira de calcular quando o processo é criado ( stackoverflow.com/questions/5731234/... )
Ganesh

Não funcionou para mim, após o processo em execução por 2 dias, esse arquivo relatou um horário modificado muito recente. Além disso, o OP era "quais unidades", embora isso seja interessante ... fora de tópico.
Wilbur Whateley
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.