Kernel/hardware errors: различия между версиями
< Kernel
Vt (обсуждение | вклад) (→Сеть) |
Vt (обсуждение | вклад) м (→Мониторинг ошибок: Fix indentation) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Перед | Перед заполнением баг-репорта рекомендуется проверить аппаратные компоненты на наличие ошибок. Возникновение аппаратных проблем может привести к появлению "мистических глюков", которые никто не сможет исправить, так как они специфичны только для вашего устройства. Однако эти глюки будут отнимать время и вызывать ложные подозрения о наличии ошибок в ПО. | ||
= | = Память = | ||
== | == Проверка == | ||
* '''Memtest86+''': как правило, доступен в меню {{menuitem|Advanced options for ALT Sisyphus Sisyphus}} при загрузке через grub. — https://www.memtest.org/ | * '''Memtest86+''': как правило, доступен в меню {{menuitem|Advanced options for ALT Sisyphus Sisyphus}} при загрузке через grub. — https://www.memtest.org/ | ||
* ''' | Один прогон проверки памяти может занимать несколько часов. Битую память лучше заменить. Однако, если это невозможно, можно попробовать отключить найденные адреса от использования в системе (через <code>GRUB_BADRAM=</code> или параметр командной строки ядра <code>memmap=</code>). | ||
* '''memtest''' в ядре Linux — если добавить <code>memtest=4</code> в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память будет автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки. | |||
== | == Мониторинг ошибок == | ||
* ''' | * '''mcelog''': (считается устаревшим и) не поддерживается в ядрах Альта (отсутствует {{Path|/dev/mcelog}} устройство). <br> ''"mcelog logs and accounts machine checks (in particular memory, IO, and CPU hardware errors) on modern x86 Linux systems."'' — https://mcelog.org/ | ||
* '''edac-util''': рабочий вариант, но плохо поддерживается апстримом. <br> ''"Userspace helper for kernel EDAC drivers (Error Detection and Correction)"'' — https://github.com/grondo/edac-utils | |||
* '''rasdaemon''': современное решение. Мониторит не только память, а любые доступные ему аппаратные ошибки. <br> ''"Those tools provide a way to get Platform Reliability, Availability and Serviceability (RAS) reports made via the Kernel tracing events."'' — https://github.com/mchehab/rasdaemon | |||
# apt-get install rasdaemon | |||
# systemctl enable --now rasdaemon | |||
: Ошибки записываются во единую внутреннюю базу данных, для просмотра используется утилита <code>ras-mc-ctl</code>. | |||
== Сеть | = Диски = | ||
* '''smartmontools''': | |||
** Утилита '''<code>smartctl</code>''' показывает информацию по состоянию дисков из S.M.A.R.T. Так же она позволяет запустить два внутренних теста дисков (self-tests) - т.н. короткий и долгой (сканирует всю поверхность дисков). | |||
** Сервис '''smartd''': позволяет постоянно мониторить S.M.A.R.T. параметры. | |||
= Сеть = | |||
* '''iproute2''': | * '''iproute2''': | ||
** Команда <code>ip link</code>: покажет физическое состояние (наличие сигнала) каждого интерфейса: <code>NO-CARRIER</code> или <code>LOWER_UP</code>. | ** Команда <code>ip link</code>: покажет физическое состояние (наличие сигнала) каждого интерфейса: <code>NO-CARRIER</code> или <code>LOWER_UP</code>. | ||
Строка 20: | Строка 27: | ||
* '''ethtool''': Покажет состояние соединения (<code>Link detected</code> - аналог предыдущей информации о наличии сигнала от <code>ip link</code>), ошибки в настройках <code>Speed</code>, <code>Duplex</code>, а с опцией <code>-S</code> покажет статистку включающую errors, drops. | * '''ethtool''': Покажет состояние соединения (<code>Link detected</code> - аналог предыдущей информации о наличии сигнала от <code>ip link</code>), ошибки в настройках <code>Speed</code>, <code>Duplex</code>, а с опцией <code>-S</code> покажет статистку включающую errors, drops. | ||
= Сообщения ядра = | |||
* '''dmesg -l err''' список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках. | * '''<code>dmesg -l err</code>''' список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках. | ||
* '''journalctl -k -p err''' та же информация в системе с systemd. Кроме того, <code>dmesg</code> буфер может заполниться и потерять начало загрузки системы, а в журнале информация все ещё быть. | * <code>'''journalctl -k -p err'''</code> та же информация в системе с systemd. Кроме того, <code>dmesg</code> буфер может заполниться и потерять начало загрузки системы, а в журнале информация все ещё быть. | ||
Пример сообщения: | |||
mce: [Hardware Error]: Machine check events logged | |||
mce: [Hardware Error]: CPU 3: Machine Check: 0 Bank 0: 9400004000040150 | |||
mce: [Hardware Error]: TSC 14e0d7f5aadeb0 ADDR 1ffffb00b542f | |||
mce: [Hardware Error]: PROCESSOR 0:a0655 TIME 1682972918 SOCKET 0 APIC 6 microcode f4 | |||
= Информация о оборудовании = | |||
* '''lscpu''', '''lspci''', '''dmidecode''', '''lsblk''', '''lsscsi''', '''lsusb''', '''nvme''': информация по отдельным подсистемам. | |||
* '''inxi''' 🏆, '''lshw''', '''hwinfo''': агрегаторы информации по системе (CLI). | |||
* '''lshw-gui''', '''hardinfo''': агрегаторы информации по системе (GUI). | |||
{{Category navigation|title=Kernel|category=Kernel|sortkey=*}} | {{Category navigation|title=Kernel|category=Kernel|sortkey=*}} |
Текущая версия от 13:56, 1 сентября 2024
Перед заполнением баг-репорта рекомендуется проверить аппаратные компоненты на наличие ошибок. Возникновение аппаратных проблем может привести к появлению "мистических глюков", которые никто не сможет исправить, так как они специфичны только для вашего устройства. Однако эти глюки будут отнимать время и вызывать ложные подозрения о наличии ошибок в ПО.
Память
Проверка
- Memtest86+: как правило, доступен в меню Advanced options for ALT Sisyphus Sisyphus при загрузке через grub. — https://www.memtest.org/
Один прогон проверки памяти может занимать несколько часов. Битую память лучше заменить. Однако, если это невозможно, можно попробовать отключить найденные адреса от использования в системе (через GRUB_BADRAM=
или параметр командной строки ядра memmap=
).
- memtest в ядре Linux — если добавить
memtest=4
в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память будет автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки.
Мониторинг ошибок
- mcelog: (считается устаревшим и) не поддерживается в ядрах Альта (отсутствует /dev/mcelog устройство).
"mcelog logs and accounts machine checks (in particular memory, IO, and CPU hardware errors) on modern x86 Linux systems." — https://mcelog.org/ - edac-util: рабочий вариант, но плохо поддерживается апстримом.
"Userspace helper for kernel EDAC drivers (Error Detection and Correction)" — https://github.com/grondo/edac-utils - rasdaemon: современное решение. Мониторит не только память, а любые доступные ему аппаратные ошибки.
"Those tools provide a way to get Platform Reliability, Availability and Serviceability (RAS) reports made via the Kernel tracing events." — https://github.com/mchehab/rasdaemon
# apt-get install rasdaemon # systemctl enable --now rasdaemon
- Ошибки записываются во единую внутреннюю базу данных, для просмотра используется утилита
ras-mc-ctl
.
Диски
- smartmontools:
- Утилита
smartctl
показывает информацию по состоянию дисков из S.M.A.R.T. Так же она позволяет запустить два внутренних теста дисков (self-tests) - т.н. короткий и долгой (сканирует всю поверхность дисков). - Сервис smartd: позволяет постоянно мониторить S.M.A.R.T. параметры.
- Утилита
Сеть
- iproute2:
- Команда
ip link
: покажет физическое состояние (наличие сигнала) каждого интерфейса:NO-CARRIER
илиLOWER_UP
. - Команда
ip -s link
: дополнительно покажет статистику в столбцах errors.
- Команда
- net-tools: олдскульные утилиты аналоги iproute2:
ifconfig
: статистика errors;netstat -i
: статистика RX-ERR, TX-ERR. - ethtool: Покажет состояние соединения (
Link detected
- аналог предыдущей информации о наличии сигнала отip link
), ошибки в настройкахSpeed
,Duplex
, а с опцией-S
покажет статистку включающую errors, drops.
Сообщения ядра
dmesg -l err
список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках.journalctl -k -p err
та же информация в системе с systemd. Кроме того,dmesg
буфер может заполниться и потерять начало загрузки системы, а в журнале информация все ещё быть.
Пример сообщения:
mce: [Hardware Error]: Machine check events logged mce: [Hardware Error]: CPU 3: Machine Check: 0 Bank 0: 9400004000040150 mce: [Hardware Error]: TSC 14e0d7f5aadeb0 ADDR 1ffffb00b542f mce: [Hardware Error]: PROCESSOR 0:a0655 TIME 1682972918 SOCKET 0 APIC 6 microcode f4
Информация о оборудовании
- lscpu, lspci, dmidecode, lsblk, lsscsi, lsusb, nvme: информация по отдельным подсистемам.
- inxi 🏆, lshw, hwinfo: агрегаторы информации по системе (CLI).
- lshw-gui, hardinfo: агрегаторы информации по системе (GUI).