Как диагностировать случайные зависания?

14

Ubuntu всегда зависает в первые 15 минут после загрузки на мою машину. Иногда это в первые 5 минут, иногда это занимает 30 минут, иногда это никогда не происходит ...

Я не могу воспроизвести это детерминистически, но в любом случае это случается достаточно часто, так что я, вероятно, просто жду, когда это случится снова.

Как я могу диагностировать замораживание, чтобы выяснить причину ?

Примечание для избирателей:
нет, это не дубликат этого вопроса. Этот вопрос касается диагностики , а не временного выздоровления. Ответы на этот вопрос говорят мне только о том, как убить X-сервер, использовать Magic Combo для сброса ядра и т. Д., Что не помогает мне выяснить причину.

Немного информации:

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

  2. Мышь иногда двигается, но пользовательский интерфейс никогда не реагирует.

  3. Нажатие Ctrl+ Alt+ F1для входа в терминал не работает.

  4. В Alt+ SysRqкомбо сделать работу ... и , кажется, только то , что работа, в стороне от мыши (которые иногда могут передвигаться).

  5. У меня нет никаких ресурсов (много гигабайт оперативной памяти и свободного места в файловой системе)

  6. Возможно соответствующее оборудование (из приложения Hardware Lister):

    • AR9285 Беспроводной сетевой адаптер (PCI-Express)

    • GT216 [GeForce GT 330M] (я использую драйвер Nouveau, который, кажется, работает хорошо)

user541686
источник
В другом месте я видел комментарий о попытке подключиться к вашей машине с другого компьютера - успех / неудача, по крайней мере, указывают на серьезность зависания - отличный вопрос!
david.libremone

Ответы:

7

Журналы всегда должны быть вашим первым портом захода. Проверьте системный журнал на что-нибудь неприятное:

less /var/log/syslog

Также проверьте журналы Xserver в случае, если есть какие-либо признаки проблемы с графическим драйвером (хотя это звучит менее вероятно, учитывая ваше описание):

less /var/log/Xorg.0.log

В вашем конкретном случае эти шаги могут не вызвать ничего интересного. В этом случае мне было бы интересно посмотреть, что происходит в вашей системе во время разработки проблемы. Для этого лично я бы настраивал временный журнал topвывода через короткие интервалы - скажем, каждые 5 или 10 секунд. Мы надеемся, что это покажет, насколько процесс запущен с ресурсами во время проблемы.

Обратите внимание, что существуют альтернативы, такие как переключение на другой tty с помощью Ctrl+Alt+F1.. F6(чтобы вернуться к графическому интерфейсу Ctrl+Alt+F7) и интерактивное выполнение команд или настройка сервера SSH и удаленный вход в систему. И то и другое может быть неудобно, если ваша машина более или менее не отвечает, поэтому мое более неудобное предложение написать файл журнала (который также может столкнуться с той же проблемой, но с большей вероятностью будет успешным).

Это будет включать что-то вроде этого:

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

Это будет записывать topвывод в файл журнала в ~ / top.log каждые 10 секунд или около того. Обратите внимание, что этот журнал может стать довольно большим, если эта команда будет выполняться в течение длительного периода, поэтому следите за ним, если ваша машина неожиданно начнет работать сама! И удалите журнал, rm ~/top.logкогда закончите. Также обратите внимание, что выполнение вышеупомянутой команды является одноразовым; он не перезапустится после перезагрузки.

Чтобы прочитать журналы, созданные после сбоя, вы должны использовать

less ~/top.log

и нажмите Endклавишу, чтобы добраться до дна. Вы бы искали процессы с необычно высоким значением% процессора или необычно высоким значением RES.

Это может или не может помочь, но это полезная информация, чтобы иметь.

IlluminAce
источник
Ах, спасибо. Я только что искал, /var/log/messagesно он не существует ... это фактический файл, или вы намеревались посмотреть журналы внутри этого каталога? (Если да, то какие логи?)
user541686
Мои извинения, я думаю о других раздачах. Они все немного разные! В Ubuntu это эквивалентно / var / log / syslog. Я обновлю ответ.
IlluminAce
Ах, не беспокойся, спасибо. :) Я только что посмотрел syslogи kern.log, и в обоих из них, я искал SysRq(так как первое, что я делаю, это очистка файловой системы) ... но, судя по журналам, ничего не произошло до очистки. Позвольте мне проверить журнал xorg ...
user541686
Хм, в Xorgлогах тоже ничего не выделяется . Кроме того, это определенно не проблема процессора (вот почему я упомянул, что это не недостаток ресурсов), мой процессор почти не используется во время остановки. Замораживание происходит совершенно случайно ... иногда я перетаскиваю окно, и оно зависает, иногда я просто оставляю компьютер там на пять минут, а когда возвращаюсь, оно зависает. Но это совершенно не связано с нехваткой ресурсов. Тем не менее, хорошая информация, спасибо.
user541686
Я должен был упомянуть, что в журнале Xorg есть небольшое предостережение: вы можете обнаружить, что данные предыдущего сеанса были перезаписаны новым сеансом, в котором вы сейчас находитесь. Если это так, вы можете увидеть исходные данные, загрузившись прямо в tty (после сбоя ...) и проверив там журнал. Вы можете загрузиться непосредственно с терминала, добавив «текст» в конец строки загрузки ядра - как описано здесь: askubuntu.com/questions/158382/… Когда вы закончите, либо перезагрузите компьютер, либо введите X с помощью sudo service lightdm start, или startx напрямую
IlluminAce