Рабочий стол 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, это может быть связано с проблемой аппаратного обеспечения или перегревом видеокарты (попробуйте уменьшить возможности разгона).