Como diagnosticar congelamentos aleatórios?

11

O Ubuntu sempre parece congelar nos primeiros ~ 15 minutos de quando é inicializado na minha máquina. Às vezes é nos primeiros 5 minutos, às vezes leva 30 minutos, ocasionalmente nunca acontece ...

Eu não posso reproduzi-lo de forma determinista, mas acontece com muita frequência de qualquer maneira que eu provavelmente só espero que isso aconteça novamente.

Como posso diagnosticar o congelamento para descobrir a causa ?

Nota para fechar eleitores:
Não, isso é não uma duplicata de isto pergunta. Esta questão é sobre diagnóstico , não uma recuperação temporária. As respostas nessa questão só me dizem como matar o X Server, usar o Magic Combo para resetar o kernel, etc ... o que não me ajuda a descobrir a causa.

Alguma informação:

  1. Ubuntu 11.04: 2.6.38-15-genérico # 66-Ubuntu SMP x86_64 GNU / Linux

  2. O mouse às vezes se movimenta, mas a interface do usuário nunca responde.

  3. Pressionar Ctrl + Alt + F1 para entrar em um terminal não funciona.

  4. Os combos Alt + SysRq do funcionam ... e parecem ser as únicas coisas que funcionam, além do mouse (que às vezes também pode se mover).

  5. Não estou ficando sem recursos (muitos gigabytes de RAM e espaço no sistema de arquivos são gratuitos)

  6. Hardware possivelmente relevante (da aplicação Hardware Lister):

    • Adaptador de rede sem fio AR9285 (PCI-Express)

    • GT216 [GeForce GT 330M] (estou usando o driver Nouveau, que parece funcionar bem)

por Mehrdad 17.01.2013 / 21:31

1 resposta

6

Os registros sempre devem ser seu primeiro porto de escala. Verifique o syslog para qualquer inconveniente:

less /var/log/syslog

Verifique também os logs do Xserver caso haja qualquer indicação de um problema com o driver gráfico (embora isso pareça menos provável, dada a sua descrição):

less /var/log/Xorg.0.log

No seu caso particular, essas etapas podem não gerar nada de interessante. Nesse caso, eu estaria interessado em ver o que está acontecendo no seu sistema no momento do desenvolvimento do problema. Para esse fim, pessoalmente, eu configuraria um log temporário de top output em intervalos curtos - digamos, a cada 5 ou 10 segundos. Isso deve revelar se um processo está sendo executado com recursos no momento do problema.

Note que existem alternativas, como trocar para outro tty com Ctrl + Alt + F1 . F6 (para voltar para a GUI, é Ctrl + Alt + F7 ) e executando comandos interativamente, ou configurando um servidor SSH e logando remotamente. Ambos podem ser estranhos se a sua máquina não responder mais, daí a minha sugestão mais difícil de escrever um arquivo de log (que poderia também encontrar o mesmo problema, mas é mais provável que tenha sucesso).

Isso envolveria algo assim:

while [ 1 -eq 1 ] ; do top -b >> ~/top.log; sleep 10; done

Isso gravaria top output em um arquivo de log em ~ / top.log a cada 10 segundos ou mais. Note que este log irá crescer bastante se este comando for deixado em execução por um período prolongado, então fique de olho nele se a sua máquina de repente começar a se comportar! E remova o log com rm ~/top.log quando terminar. Note também que executar o comando acima é uma coisa única; não será reiniciado após uma reinicialização.

Para ler os registros gerados após uma falha, você usaria

less ~/top.log

e pressione a tecla End para chegar ao fim. Você estaria procurando por processos com um% excepcionalmente alto de valor de CPU ou um valor excepcionalmente alto de RES.

Pode ou não ajudar, mas é útil ter informações.

    
por IlluminAce 17.01.2013 / 21:52

Tags