Вопрос или проблема
Сообщение уровня отладки ядра
watchdog : BUG: soft lockup – CPU#0 stuck for 22s!
появляется в моей консоли (/dev/tty1), и я пытаюсь предотвратить это.
Я попробовал следующие 3 метода, но ни один из них не сработал:
- Я установил
kernel.printk = 1 1 1 1
в файле/etc/sysctl.conf
. Выполнивsysctl kernel.printk
из командной строки, я могу утверждать, что значения верны. - Запустил
dmesg -n 1
иdmesg -D
(консоль выключена) - Попробовал установить значения
ForwardToConsole=no
иTTYPath=/dev/tty2 ForwardToWall=no
в файле/etc/systemd/journald.conf
Ничто из этого не помогло, и журнал ядра все еще выводится на мой терминал.
Чего не хватает? Я использую Ubuntu 18.04.
К сожалению, я неправильно понял уровень приоритета этого сообщения журнала из-за слова “BUG” в нем. Я думал, что это сообщение отладки с приоритетом 7. Однако, когда я проверил с помощью команд “journalctl -k -p 0” и “dmesg –level=emerg”, я увидел, что уровень приоритета сообщения равен нулю.
Таким образом, установка kernel.printk = 0 0 0 0 в файле /etc/sysctl.conf решила проблему.
Ответ или решение
Отключение сообщений ядра на терминальном экране Ubuntu
Проблема:
На вашем терминале (/dev/tty1) появляется сообщение ядра: watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
. Это говорит о том, что происходят неполадки на уровне ядра, о которых сообщается в вашей консоли. Ваша цель — предотвратить появление этих сообщений на экране.
Контекст и предпринятые меры:
-
Изменение уровня вывода сообщений ядра
- Вы установили
kernel.printk = 1 1 1 1
в файле/etc/sysctl.conf
, и командойsysctl kernel.printk
подтвердили корректность значений. Однако это изменение не помогло.
- Вы установили
-
Команды
dmesg
- Вы использовали
dmesg -n 1
для ограничения уровня важности сообщений иdmesg -D
для отключения вывода на консоль. Эти методы также не помогли устранить проблему.
- Вы использовали
-
Настройки журнала systemd
- Вы внесли изменения в файл
/etc/systemd/journald.conf
, указавForwardToConsole=no
иTTYPath=/dev/tty2 ForwardToWall=no
. Тем не менее, сообщения продолжали появляться.
- Вы внесли изменения в файл
Корень проблемы:
Вы обнаружили, что сообщения имеют уровень важности 0, что обозначает экстренные сообщения, и это уровень, при котором даже базовые настройки фильтрации сообщения не блокируют их. Использование 0 уровня важности обусловлено критичностью сообщений, несмотря на слово "BUG" в тексте.
Решение:
Установка параметра kernel.printk = 0 0 0 0
в файле /etc/sysctl.conf
предотвратила вывод сообщений экстренного уровня важности на консоль. Это ограничивает все сообщения ядра, включая критические ошибки, от вывода на /dev/tty1.
Дополнительные рекомендации:
- Мониторинг в реальном времени — рекомендуется обратить внимание на мониторинг состояния системы, так как игнорирование сообщений об ошибках может привести к более серьезным проблемам.
- Анализ производительности — Во избежание частых soft lockup рекомендуется проводить диагностику нагрузки на CPU.
- Обновление системы — Подумайте об обновлении на более новую версию Ubuntu для получения всех системных и безопасности исправлений.
Данное решение оптимизирует ваш рабочий процесс, сохраняя терминал свободным от непредвиденного вывода сообщений ядра, однако требует внимательной работы с системной диагностикой и обслуживанием.