Se no Linux, execute strace em ps para ver quais chamadas de sistema ele chama, e você pode ver em qual delas está pendurado:
$ strace ps aux
Se você estiver em um sistema Unix-y diferente, você usaria truss ou dtruss .
Gostaria de saber no meu servidor de teste, sempre que eu executar o ps aux, ele ficará preso. Ele gera uma lista de processos e pára de responder. Eu verifiquei que há RAM suficiente (1GB).
Quando eu executo o comando top, parece ok para mim, mas eu me pergunto se existe um processo zumbi. O que é isso? Alguém pode explicar?
top - 11:00:29 up 3:53, 2 users, load average: 51.75, 50.52, 45.38
Tasks: 79 total, 1 running, 77 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1747660k total, 603572k used, 1144088k free, 12644k buffers
Swap: 917496k total, 0k used, 917496k free, 97732k cached
Obrigado
Se no Linux, execute strace em ps para ver quais chamadas de sistema ele chama, e você pode ver em qual delas está pendurado:
$ strace ps aux
Se você estiver em um sistema Unix-y diferente, você usaria truss ou dtruss .
Considerando que você tem uma carga de mais de 50, mas a CPU está 100% ociosa, eu olharia para i / o. Parece que o computador está aguardando que os discos ou a rede retornem dados antes que possam continuar.
Tente usar o iotop para ver o que está bloqueando isso. Pode ser um caminho de saída.
Comportamento semelhante também é possível de sua máquina ser configurada para fazer resolução de nome / grupo e autenticação em relação a um recurso externo e esse recurso não está disponível. Nesse caso, ajudaria a verificar sua configuração do PAM e quaisquer serviços relevantes, como DNS, LDAP, NIS.
Um ... sua carga média está mostrando que algo está realmente comendo i / o ou CPU. Seu disco rígido está se debatendo? É lento em resposta? Uma média de carga de 51 não é realmente normal.
Zombie - se um processo é gerado a partir de outro processo e termina, ele deve ser colhido pelo processo pai novamente. Se o pai caiu ou desapareceu, o processo órfão se transforma em um zumbi. É essencialmente um processo na tabela de tarefas que não está tomando recursos ou fazendo qualquer coisa, mas agora o processo init tem que cuidar disso. Não há realmente nenhuma maneira de limpá-los sem uma reinicialização, mas eles geralmente não fazem mal a nada. Agora, se você tem um monte de zumbis, você tem um problema; um processo com um bug, um problema de recurso, algo não está sendo executado corretamente. Um ou dois zumbis não fazem um filme de Romero, no entanto.
Esclarecimento - usei o termo órfão, mas o lado pedante indicava que há uma diferença entre um processo órfão e um zumbi. Órfãos ainda estão em execução, enquanto o zumbi não está fazendo nada, ele não está tomando recursos além de uma entrada de tabela de processo. E eu não tenho certeza sobre o init tomar o processo zumbi. Eu posso estar errado nisso (Init deve cuidar de processos órfãos). De qualquer forma, a menos que você tenha muitos zumbis aparecendo, um ou dois em um sistema não é um problema normalmente.
Uau, da sua saída principal, sua carga é ridiculamente alta. A menos que você tenha um sistema com mais de 50 CPUs, isso é muito alto. Os processadores não estão fazendo nada:
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Parece que você tem um problema de hardware. O que a saída de dmesg
diz a você?
ps aux
exibe a lista de processos uma vez e sai. Não atualiza periodicamente como top
.
Um processo "zumbi" é um processo que concluiu a execução, mas ainda possui uma entrada na tabela de processos. Esta entrada ainda é necessária para permitir que o processo que iniciou o processo (now zombie) leia seu status de saída.
Tags ubuntu