Como diagnosticar congelamentos aleatórios?

14

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

Não posso reproduzi-lo de forma determinística, mas, de qualquer maneira, isso acontece com bastante frequência, provavelmente apenas espero que aconteça novamente.

Como posso diagnosticar o congelamento para descobrir a causa ?

Nota aos eleitores próximos:
Não, isso não é uma duplicata desta pergunta. Esta pergunta é sobre diagnóstico , não uma recuperação temporária. As respostas nessa pergunta me dizem apenas como matar o X Server, usar o Magic Combo para redefinir o kernel, etc .... o que não me ajuda a descobrir a causa.

Alguma informação:

  1. Ubuntu 11.04: 2.6.38-15-generic # 66-Ubuntu SMP x86_64 GNU / Linux

  2. Às vezes, o mouse se move, mas a interface do usuário nunca responde.

  3. Pressionar Ctrl+ Alt+ F1para entrar no terminal não funciona.

  4. Os Alt+ SysRqcombos fazer o trabalho ... e parecem ser as únicas coisas que o trabalho, além do rato (o 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 estão livres)

  6. Hardware possivelmente relevante (do aplicativo Hardware Lister):

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

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

user541686
fonte
vi um comentário em outro lugar sobre tentar ssh na sua máquina a partir de outra máquina - sucesso / falha pelo menos indica a gravidade do congelamento - ótima pergunta!
David.libremone

Respostas:

7

Os logs sempre devem ser sua primeira porta de escala. Verifique o syslog para ver se há algo indesejável:

less /var/log/syslog

Verifique também os logs do Xserver, caso haja alguma indicação de um problema no 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 configurava um log temporário de topsaída em intervalos curtos - digamos a cada 5 ou 10 segundos. Esperamos que isso revele se um processo está sendo executado com recursos no momento do problema.

Observe que existem alternativas, como alternar para outro tty com Ctrl+Alt+F1.. F6(para retornar à GUI, é Ctrl+Alt+F7) e executar comandos interativamente, ou configurar um servidor SSH e efetuar login remotamente. Ambos podem ser estranhos se sua máquina não responder ou não responder, portanto, minha sugestão mais complicada de escrever um arquivo de log (que também pode encontrar o mesmo problema, mas é mais provável que seja bem-sucedida).

Isso envolveria algo como isto:

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

Isso topgravaria a saída em um arquivo de log em ~ / top.log a cada 10 segundos ou mais. Observe que esse log aumentaria bastante se esse comando permanecer em execução por um período prolongado; portanto, fique de olho nele se sua máquina começar a se comportar repentinamente! E remova o log rm ~/top.logquando terminar. Observe também que a execução do comando acima é algo único; ele não será reiniciado após uma reinicialização.

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

less ~/top.log

e pressione a Endtecla para chegar ao fundo. Você procuraria processos com um valor% de CPU incomumente alto ou um valor RES incomumente alto.

Pode ou não ajudar, mas é uma informação útil.

IlluminAce
fonte
Ah obrigada. Eu apenas procurei, /var/log/messagesmas ele não existe ... é um arquivo real ou você pretendia que eu devesse examinar os logs dentro desse diretório? (Em caso afirmativo, quais logs?))
User541686
Minhas desculpas, estou pensando em outras distribuições. Eles são todos sutilmente diferentes! No Ubuntu, o equivalente é / var / log / syslog. Vou atualizar a resposta.
IlluminAce
Ah não se preocupe, obrigado. :) Eu apenas olhei sysloge kern.log, e em ambos, procurei SysRq(já que a primeira coisa que faço é liberar o sistema de arquivos) ... mas nada relevante parece ter acontecido antes da liberação, de acordo com os logs. Deixe-me verificar o log do xorg ...
user541686
Hmm, nada parece se destacar nos Xorglogs também. Definitivamente, também não é um problema de CPU (por isso mencionei que não é falta de recursos), minha CPU mal está sendo usada durante o congelamento. O congelamento é completamente aleatório ... às vezes, arrasto uma janela e congela, às vezes deixo o computador lá por cinco minutos e, quando volto, está congelado. Mas isso não tem nenhuma relação com a falta de recursos. Ainda assim, boa informação, obrigado.
user541686
Eu deveria ter mencionado que há uma pequena ressalva no log do Xorg, pois você pode achar que os dados da sessão anterior foram substituídos pela nova sessão em que você está agora. Se for esse o caso, você poderá ver os dados originais inicializando diretamente em um tty (após uma falha ...) e verificando o log lá. Você pode inicializar diretamente no terminal adicionando "texto" ao final da linha de inicialização do kernel - conforme descrito aqui: askubuntu.com/questions/158382/… Quando terminar, reinicie ou digite X com o serviço sudo lightdm start, ou startx diretamente
IlluminAce 17/01