news
Serverspace добавил возможность подключения S3 к сервису CDN
KA
10 октября 2023
Обновлено 10 октября 2023

Анализ ошибок ядра Debian. Траблшутинг

Debian Мониторинг

Введение

Ошибки ядра представляют собой серьезную проблему в области компьютерных систем, вызывая страх пользователей любого уровня. Ядро, занимающее центральное место в любой операционной системе, играет ключевую роль в управлении аппаратными ресурсами и обеспечении стабильности системы. Однако, когда в этих сложных ядрах возникают ошибки, последствия могут быть самыми плачевными: от сбоев в работе системы до потери данных и повсеместной нестабильности системы.

В данном руководстве мы рассмотрим поиск и устранение ошибок ядра. Мы рассмотрим распространенные причины возникновения этих ошибок. Независимо от того, чем занимается человек — системным администрированием, разработкой программного обеспечения или просто страстным любопытством к внутреннему устройству вычислительных систем, владение искусством устранения ошибок ядра представляет собой неизмеримую ценность, позволяя обеспечить жизнеспособность и надежность своих цифровых доменов.

Первый этап: Ошибки

Проблемы в ОС могут проявиться неожиданно: медленный ввод—вывод диска, исчезнувшее устройство, высокая нагрузка на процессор. Все это критично и для современного сервера недопустимо. Для этого существуют различные системные утилиты, позволяющие отслеживать и регистрировать происходящие события. Syslog — это системный журнал, который может помочь в расследовании возникающих программных, демонских, файловых, сетевых и других проблем. Однако он не охватывает сообщения, проблемы от устройств и драйверов. Это место в системе монитора заполняется ядром с помощью его функции log, которая использует специальный канал — кольцевой буфер для передачи всех сообщений ядра и информации о подключенных устройствах, их драйверах и т.д.

Для чтения сообщений из ядра можно использовать утилиту dmesg, которая имеет различные возможности для работы с журналом:

dmesg
Сообщения ядра
Скриншот №1 — Сообщения ядра

На экране появится куча информации, которую ядро отправляет в файл журнала. С таким объемом данных мы не сможем работать. Для этого у нас есть опции, которые задают выводимую информацию:

dmesg -H
Опции h
Скриншот №2 — Опции h

Данные корректируются в соответствии с шаблоном и сортируются по области. Но у нас пока нет информации в реальном времени из модуля kernel log, давайте это исправим, введя следующую команду:

dmesg -H -w
Опции h и w
Скриншот №3 — Опции h и w

Для просмотра только сообщений ядра и служб укажите опцию —k, по умолчанию служба журнала выводит только сообщения об ошибках и предупреждениях. Опция —k позволяет выводить все сообщения, включая информационные:

dmesg -k -H
Опции h и k
Скриншот №4 — Опции h и k

Для очистки буфера от сообщений ядра достаточно набрать:

dmesg -c

Для ограничения лимита буфера используйте -s:

dmesg -s 4096

Важно знать! Если вы увеличиваете размер буфера, то по логике вещей это требует больше места на диске. Но это полезно, если у вас проблемы с производительностью на вашей машине, сообщения будут появляться чаще!

Также мы можем использовать конвейер для фильтрации журналов, например:

dmesg -H | grep “error”

Таким образом, мы можем отслеживать состояние устройств, драйверов и ядер. На следующем этапе рассмотрим основную проблему с ядром, которая может возникнуть внезапно.

Решение проблем

В Linux существует несколько типов критических ошибок для ядра, которые необходимо знать:

Если вы неожиданно встретили сообщение об ошибке Segmentation fault, это может свидетельствовать о проблемах с драйвером. В этом случае есть возможность либо обновить драйвер, либо удалить его и заменить другим.

Для этого, прежде всего, необходимо проверить загруженные в ядро модули командой:

lsmod

Если вы видите в этом списке свой драйвер или модуль, значит, он запустился, но работает некорректно. Переустановите драйверы стандартным способом через утилиты apt—get, aptitude или воспользуйтесь исходным кодом для компиляции.

Аналогично, если вы столкнулись с сообщением об ошибке Divide by zero, это может свидетельствовать о программной ошибке. В этом случае для решения проблемы можно обновить программное обеспечение или изменить конфигурацию системы.

В этом случае следует искать проблемы в использующем модуле, поскольку вероятность некорректной работы ядра переходит к минимальному значению. Если мы используем ПО с предустановленными модулями, то переустановите их и напомните о необходимости использования опции очистки!

apt purge software_name

А затем с помощью автоудаления очистить дисковое пространство от неиспользуемых библиотек:

apt autoremove

Кроме того, если вы увидели сообщение об ошибке Kernel panic, это может свидетельствовать о критической проблеме с ядром. В ответ на это можно попытаться решить проблему либо перезагрузкой системы, либо ее восстановлением из ранее сохраненной резервной копии. Если вы клонируете систему, то необходимо запустить систему и зайти в BIOS, для изменения загрузки на резервную IMG. В Serverspace нужно перейти на главную страницу, выбрать нужный сервер:

Главная страница
Скриншот №5 — Главная страница

Переключите вкладку на Recovery, затем измените режим загрузки на Boot from recovery image:

Загрузка с доп.образа
Скриншот №6 — Загрузка с доп. образа

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

Вывод

Разбирать ошибки ядра в компьютерных системах — сложная задача, требующая внимания и опыта. Эти ошибки, часто непредвиденны и разрушительны, могут проявляться по-разному, влияя на производительность и стабильность системы. Для эффективного решения этих проблем мы используем имеющиеся в нашем распоряжении инструменты, такие как syslog и dmesg, для мониторинга и анализа сообщений ядра, что позволяет получить ценную информацию о состоянии системы.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 2
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300

Вам также может быть интересно...