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.