Рабочий стол Ubuntu иногда зависает при регулярном использовании

Ubuntu 16.04 висел на мне ~1 раз в день. Это происходит, когда я нахожусь в процессе просмотра веб-страниц или использования настольного приложения, а не при загрузке. Когда это произойдет, указатель мыши будет по-прежнему свободно перемещаться, но щелчки или нажатия клавиш не будут влиять на мою систему, пока я не выполню полную перезагрузку.

Какой лучший способ для меня отладить это?

Вот некоторая информация:

selah@selah-Precision-Tower-5810:~$ uname -a
Linux selah-Precision-Tower-5810 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Также, в случае необходимости, у меня есть "очень большой" монитор Dell 42"с разрешением 3840x2160.

selah@selah-Precision-Tower-5810:~$ lspci | grep VGA
03:00.0 VGA compatible controller: NVIDIA Corporation GM107GL [Quadro K2200] (rev a2)

ОБНОВИТЬ:

Следуя совету Артема, я нашел следующее сообщение в журналах ошибок:

Apr 27 09:47:25 selah-Precision-Tower-5810 kernel: nouveau 0000:03:00.0: fifo: SCHED_ERROR 0a [CTXSW_TIMEOUT]
Apr 27 09:47:29 selah-Precision-Tower-5810 kernel: nouveau 0000:03:00.0: fifo: SCHED_ERROR 0a [CTXSW_TIMEOUT]
Apr 27 09:47:33 selah-Precision-Tower-5810 kernel: nouveau 0000:03:00.0: fifo: SCHED_ERROR 0a [CTXSW_TIMEOUT]

Который позволил мне эту ошибку, которая описывает подобное поведение: https://bugs.freedesktop.org/show_bug.cgi?id=93629

2 ответа

Решение

Включить постоянное ведение журнала

sudo mkdir /var/log/journal

перезагружать

Убедитесь, что постоянная регистрация включена, просматривая /var/log/journal и проверка, существует ли случайно именованный каталог.

После инцидента

Список системных загрузок

sudo journalctl --list-boots

Извлеките ботинок с инцидентом

sudo journalctl -b caf0524a1d394ce0bdbcff75b94444fe > /tmp/errorlog

или просто

sudo journalctl -b caf0524a1d394ce0bdbcff75b94444fe

Осмотрите журнал.

Это ошибка видео драйвера Nouveau (расширение ядра). Для получения подробной информации, проверьте ошибки на bugs.freedesktop.org или на GitLab, особенно: # 93629, # 99900 и # 100567 (которые связаны с SCHED_ERROR / CTXSW_TIMEOUT).

Для отладки стоп-кадра вы можете использовать ключ Magic SysRq, например:

Примечание. Подумайте о том, чтобы удерживать клавишу ift Shift (в зависимости от клавиатуры).

  • Alt - SysRq - 9 (нет ⇧ Shift) - установите уровень журнала консоли на 9, чтобы показать больше сообщений ядра
  • Alt - SysRq - w - Показать список заблокированных (состояние D) задач
  • Alt - SysRq - l - показывает обратный ход стека для всех активных процессоров.
  • Alt - SysRq - t - выводит список текущих задач и их информацию на консоль
  • Alt - SysRq - p - выводить текущие регистры и флаги на консоль
  • Alt - SysRq - q - Показать все активные таймеры высокого разрешения и источники синхронизации.
  • Alt - SysRq - m - выводить текущую информацию о памяти на консоль

Другие вещи, чтобы попробовать во время замораживания:

Примечание. Подумайте о том, чтобы удерживать клавишу ift Shift (в зависимости от клавиатуры).

  • Сбросьте хороший уровень всех высокоприоритетных задач и задач в реальном времени, нажав Alt - SysRq - n.
  • Попробуйте принудительно вернуться к текстовой консоли, нажав Control - Alt - F1 (от F1 до F12).
  • Убейте все процессы на текущей виртуальной консоли (можете убить X), нажав Alt- SysRq -k.
  • Выполните сбой системы (если он настроен) с помощью Alt - SysRq - c.

Если ничего не работает, вы должны выполнить безопасную перезагрузку с помощью Alt - SysRq - REISUB, которая:

  • Alt - SysRq - R: Un R aw (вернуть контроль над клавиатурой обратно из X).
  • Alt - SysRq - E: t E rminate (отправить SIGTERM всем процессам).
  • Alt - SysRq - I: k I ll (отправить SIGKILL всем процессам, заставив их немедленно прекратить работу).
  • Alt - SysRq - S: S ync для всех смонтированных файловых систем (сброс данных на диск).
  • Alt - SysRq - U: U nmount (перемонтировать все файловые системы в режиме только для чтения),
  • Alt - SysRq - B: немедленно перезагрузить систему.

    Примечание. Если приведенная выше комбинация жесткой перезагрузки не сработает, зависание может быть вызвано неисправным оборудованием, а не видеодрайверами.

Примечание. Если некоторые параметры SysRq не работают из-за ошибки " Эта операция sysrq отключена ", включите:

echo 1 | sudo tee /proc/sys/kernel/sysrq

Смотрите: Настройка SysRq в Linux.


После перезагрузки проверьте ваш kern.log для деталей, особенно следов вызовов, сгенерированных вышеупомянутыми командами ядра. Это может помочь найти правильный отчет об ошибке и найти решение. Проверьте следующее kern.log пример.

Вы можете проверить последний журнал сбоев:

journalctl -b -1 # Then hit Shift-G to jump to the end.

Предлагаемое решение:

  • Обновите Ubuntu и ядро ​​до последней версии.
  • Если проблема повторится, обходной путь - установить драйверы NVIDIA, которые заменят видеодрайвер Nouveau.
  • Если то же самое происходит с драйверами NVIDIA, это может быть связано с проблемой аппаратного обеспечения или перегревом видеокарты (попробуйте уменьшить возможности разгона).
Другие вопросы по тегам