¿Cómo diagnosticar heladas aleatorias?

14

Ubuntu siempre parece congelarse en los primeros ~ 15 minutos de cuando se inicia en mi máquina. A veces es en los primeros 5 minutos, a veces lleva 30 minutos, a veces nunca sucede ...

No puedo reproducirlo de manera determinista, pero de todos modos sucede con la suficiente frecuencia que probablemente solo espero que vuelva a ocurrir.

¿Cómo puedo diagnosticar el congelamiento para descubrir la causa ?

Nota para los votantes cercanos:
No, esto no es un duplicado de esta pregunta. Esta pregunta es sobre el diagnóstico , no una recuperación temporal. Las respuestas a esa pregunta solo me dicen cómo matar el Servidor X, usar el Magic Combo para restablecer el kernel, etc. lo que no me ayuda a descubrir la causa.

Alguna información:

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

  2. El mouse a veces se mueve, pero la interfaz de usuario nunca responde.

  3. Presionar Ctrl+ Alt+ F1para ingresar a una terminal no funciona.

  4. Los Alt+ SysRqcombos hacer el trabajo ... y parecen ser las únicas cosas que el trabajo, aparte del ratón (que a veces también puede moverse).

  5. No me estoy quedando sin recursos (muchos gigabytes de RAM y espacio en el sistema de archivos son gratuitos)

  6. Hardware posiblemente relevante (de la aplicación Hardware Lister):

    • Adaptador de red inalámbrico AR9285 (PCI-Express)

    • GT216 [GeForce GT 330M] (Estoy usando el controlador Nouveau, que parece funcionar bien)

usuario541686
fuente
vi un comentario en otra parte acerca de intentar ingresar a su máquina desde otra máquina: el éxito / el fracaso al menos indican la gravedad de la congelación: ¡gran pregunta!
david.libremone

Respuestas:

7

Los registros siempre deben ser su primer puerto de escala. Compruebe syslog para cualquier cosa adversa:

less /var/log/syslog

También revise los registros de Xserver en caso de que haya alguna indicación de un problema de controlador de gráficos (aunque eso suena menos probable dada su descripción):

less /var/log/Xorg.0.log

En su caso particular, estos pasos podrían no arrojar nada interesante. En ese caso, me interesaría ver qué sucede en su sistema en el momento del desarrollo del problema. Con ese fin, personalmente, configuré un registro temporal de topsalida a intervalos cortos, digamos cada 5 o 10 segundos. Con suerte, esto debería revelar si un proceso se está agotando con recursos en el momento del problema.

Tenga en cuenta que existen alternativas, como cambiar a otro tty con Ctrl+Alt+F1... F6(para volver a la GUI, es Ctrl+Alt+F7) y ejecutar comandos de forma interactiva, o configurar un servidor SSH e iniciar sesión de forma remota. Ambos pueden ser incómodos si su máquina no responde o no, de ahí mi sugerencia más incómoda de escribir un archivo de registro (que también podría encontrar el mismo problema, pero es más probable que tenga éxito).

Implicaría algo como esto:

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

Esto escribiría la topsalida en un archivo de registro en ~ / top.log cada 10 segundos más o menos. Tenga en cuenta que este registro crecerá bastante si este comando se deja en ejecución durante un período prolongado, así que vigílelo si su máquina comienza a comportarse de repente. Y elimine el registro conrm ~/top.log cuando haya terminado. Tenga en cuenta también que ejecutar el comando anterior es una cosa única; no se reiniciará después de un reinicio.

Para leer los registros generados después de un bloqueo, usaría

less ~/top.log

y golpear el End tecla para llegar al fondo. Estaría buscando procesos con un valor de CPU% inusualmente alto o un valor RES inusualmente alto.

Puede o no ayudar, pero es una información útil para tener.

IlluminAce
fuente
Ah gracias. Solo busqué /var/log/messagespero no existe ... ¿es un archivo real o tenía la intención de que mirara los registros dentro de ese directorio? (Si es así, ¿qué registros?)
user541686
Mis disculpas, estoy pensando en otras distribuciones. ¡Todos son sutilmente diferentes! En Ubuntu, el equivalente es / var / log / syslog. Actualizaré la respuesta.
IlluminAce
Ah no te preocupes, gracias. :) Acabo de mirar syslogy kern.log, y en ambos, busqué SysRq(ya que lo primero que hago es vaciar el sistema de archivos) ... pero parece que no sucedió nada relevante antes del vaciado, según los registros. Déjame revisar el registro de xorg ...
user541686
Hmm, nada parece destacarse en los Xorgregistros tampoco. Además, definitivamente no es un problema de CPU (es por eso que mencioné que no es una falta de recursos), mi CPU apenas se usa durante el congelamiento. La congelación es completamente aleatoria ... a veces estoy arrastrando una ventana y se congela, a veces solo dejo la computadora allí durante cinco minutos y cuando regreso está congelada. Pero no tiene nada que ver con la falta de recursos. Aún así, buena información, gracias.
user541686
Debería haber mencionado que hay una pequeña advertencia en el registro de Xorg, ya que es posible que los datos de la sesión anterior hayan sido sobrescritos por la nueva sesión en la que se encuentra ahora. Si ese es el caso, puede ver los datos originales arrancando directamente a un tty (después de un bloqueo ...) y verificando el registro allí. Puede iniciar directamente en el terminal agregando "texto" al final de la línea de inicio del núcleo, como se describe aquí: askubuntu.com/questions/158382/… Cuando haya terminado, reinicie o ingrese X con sudo service lightdm start, o startx directamente
IlluminAce