Невозможно понять логи Kernel panic из /var/log/kern.log

Вопрос или проблема

Система ubuntu, которая хранила эти журналы, сбоила. Когда мы позже перезагрузили систему и просмотрели журналы в /var/log/kern.log, мы обнаружили необычные записи, начинающиеся с “echo 0 > /proc/sys/kernel/hung_task_timeout_secs”, что означает, что есть определенные зависшие процессы. Но я не могу понять

tail -n 10000 /var/log/kern.log | less
.
.                          
 [214064.246177] INFO задача systemd1018 заблокирована более чем на 122 секунды.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" [214064.246186]       Не испорчена 6.8.0-48-generic #48~22.04.1-Ubuntu
 [214064.246188] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" отключает это сообщение.
 [214064.246189] tasksystemd         состояниеD стек0     pid1018  tgid1018  ppid1      флаги0x00000002
 [214064.246193] Вызов трассировки
 [214064.246196]  <ЗАДАЧА>
 [214064.246200]  __schedule+0x27c/0x6a0
 [214064.246208]  schedule+0x33/0x110
 [214064.246210]  schedule_preempt_disabled+0x15/0x30
 [214064.246213]  rwsem_down_read_slowpath+0x284/0x4d0
 [214064.246217]  down_read+0x48/0xc0
 [214064.246219]  m_start+0x1f/0x70
 [214064.246223]  seq_read_iter+0x10b/0x4a0
 [214064.246226]  ? security_file_permission+0x36/0x60
 [214064.246230]  vfs_read+0x25c/0x390
 [214064.246234]  ksys_read+0x73/0x100
 [214064.246236]  __x64_sys_read+0x19/0x30
 [214064.246239]  x64_sys_call+0x23f0/0x24b0
 [214064.246242]  do_syscall_64+0x81/0x170
 [214064.246246]  ? switch_fpu_return+0x55/0xf0
 [214064.246249]  ? syscall_exit_to_user_mode+0x83/0x260
 [214064.246252]  ? do_syscall_64+0x8d/0x170
 [214064.246255]  ? ksys_read+0x73/0x100
 [214064.246257]  ? syscall_exit_to_user_mode+0x83/0x260
 [214064.246259]  ? do_syscall_64+0x8d/0x170
 [214064.246262]  ? ksys_read+0x73/0x100
 [214064.246265]  ? syscall_exit_to_user_mode+0x83/0x260
 [214064.246267]  ? do_syscall_64+0x8d/0x170
 [214064.246269]  ? syscall_exit_to_user_mode+0x83/0x260
 [214064.246271]  ? do_syscall_64+0x8d/0x170
 [214064.246273]  ? irqentry_exit_to_user_mode+0x78/0x260
 [214064debug2 channel 0 window 999239 sent adjust 49337
.246275]  ? irqentry_exit+0x43/0x50
 [214064.246276]  entry_SYSCALL_64_after_hwframe+0x78/0x80
 [214064.246279] RIP 00330x754439b147e2
 [214064.246302] RSP 002b00007ffc0ad875d8 EFLAGS 00000246 ORIG_RAX 0000000000000000
 [214064.246304] RAX ffffffffffffffda RBX 00005d7ccfd51fd0 RCX 0000754439b147e2
 [214064.246306] RDX 0000000000000400 RSI 00005d7ccfb63f00 RDI 0000000000000010
 [214064.246307] RBP 0000754439c17600 R08 0000000000000010 R09 00005d7ccfcc0b60
 [214064.246309] R10 0000000000000007 R11 0000000000000246 R12 000000000000039c
 [214064.246310] R13 0000000000000d68 R14 0000754439c16a00 R15 0000000000000d68
 [214064.246314]  </ЗАДАЧА>
 [214064.246315] INFO задача systemd1034 заблокирована более чем на 122 секунды.
 [214064.246317]       Не испорчена 6.8.0-48-generic #48~22.04.1-Ubuntu
 [214064.246319] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" отключает это сообщение.
 [214064.246321] tasksystemd         состояниеD стек0     pid1034  tgid1034  ppid1      флаги0x00000002
 [214064.246323] Вызов трассировки
 [214064.246324]  <ЗАДАЧА>
 [214064.246325]  __schedule+0x27c/0x6a0
 [214064.246328]  ? seq_printf+0xa6/0xc0
 [214064.246331]  schedule+0x33/0x110
 [214064.246334]  schedule_preempt_disabled+0x15/0x30
 [214064.246337]  rwsem_down_read_slowpath+0x284/0x4d0
 [214064.246339]  ? psi_group_change+0x24a/0x5a0
 [214064.246343]  down_read+0x48/0xc0
 [214064.246345]  m_start+0x1f/0x70
 [214064.246347]  seq_read_iter+0x10b/0x4a0
 [214064.246349]  ? security_file_permission+0x36/0x60
 [214064.246350]  vfs_read+0x25c/0x390
 [214064.246353]  ksys_read+0x73/0x100
 [214064.246355]  __x64_sys_read+0x19/0x30
 [214064.246357]  x64_sys_call+0x23f0/0x24b0
 [214064.246359]  do_syscall_64+0x81/0x170
 [214064.246362]  ? reweight_entity+0x160/0x270
 [214064.246366]  ? update_load_avg+0x82/0x850
 [214064.246369]  ? enqueue_entity+0xfc/0x570
 [214064.246372]  ? update_load_avg+0x82/0x850
 [214064.246375]  ? update_load_avg+0x82/0x850
 [214064.246378]  ? set_next_entity+0xd7/0x1a0
 [214064.246381]  ? psi_group_change+0x24a/0x5a0
 [214064.246384]  ? os_xsave+0x2e/0x70
 [214064.246394]  ? raw_spin_rq_unlock+0x10/0x40
 [214064.246397]  ? rseq_get_rseq_cs+0x22/0x280
 [214064.246401]  ? rseq_ip_fixup+0x90/0x1f0
 [214064.246404]  ? restore_fpregs_from_fpstate+0x3d/0xd0
 [214064.246407]  ? switch_fpu_return+0x55/0xf0
 [214064.246409]  ? irqentry_exit_to_user_mode+0x78/0x260
 [214064.246411]  ? irqentry_exit+0x43/0x50
 [214064.246413]  entry_SYSCALL_64_after_hwframe+0x78/0x80
 [214064.246415] RIP 00330x7628d87147e2
 [214064.246419] RSP 002b00007ffdc6e07238 EFLAGS 00000246 ORIG_RAX 0000000000000000
 [214064.246421] RAX ffffffffffffffda RBX 0000643e05a60660 RCX 00007628d87147e2
 [214064.246422] RDX 0000000000000400 RSI 0000643e05c688d0 RDI 0000000000000016
 [214064.246423] RBP 00007628d8817600 R08 0000000000000016 R09 0000643e05b09c20
 [214064.246425] R10 0000643e05b09cf0 R11 0000000000000246 R12 0000000000000009
 [214064.246426] R13 0000000000000d68 R14 00007628d8816a00 R15 0000000000000d68
 [214064.246429]  </ЗАДАЧА>
 [214064.246430] INFO задача systemd1037 заблокирована более чем на 122 секунды.
 [214064.246432]       Не испорчена 6.8.0-48-generic #48~22.04.1-Ubuntu
 [214064.246433] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" отключает это сообщение.
 [214064.246434] tasksystemd         состояниеD стек0     pid1037  tgid1037  ppid1      флаги0x00000002
 [214064.246437] Вызов трассировки
 [214064.246438]  <ЗАДАЧА>
 [214064.246439]  __schedule+0x27c/0x6a0
 [214064.246443]  schedule+0x33/0x110
 [214064.246447]  schedule_preempt_disabled+0x15/0x30
 [214064.246450]  rwsem_down_read_slowpath+0x284/0x4d0
 [214064.246457]  ? check_heap_object+0x18b/0x1e0
 [214064.246461]  down_read+0x48/0xc0
 [214064.246463]  m_start+0x1f/0x70
 [214064.246465]  seq_read_iter+0x10b/0x4a0
 [214064.246468]  ? security_file_permission+0x36/0x60
 [214064.246471]  vfs_read+0x25c/0x390
 [214064.246473]  ksys_read+0x73/0x100
 [214064.246476]  __x64_sys_read+0x19/0x30
 [214064.246479]  x64_sys_call+0x23f0/0x24b0
 [214064.246481]  do_syscall_64+0x81/0x170
 [214064.246484]  ? mntput+0x24/0x50
 [214064.246486]  ? path_put+0x1e/0x30
 [214064.246489]  ? do_readlinkat+0x10f/0x140
 [214064.246491]  ? syscall_exit_to_user_mode+0x83/0x260
 [214064.246493]  ? do_syscall_64+0x8d/0x170
 [214064.246496]  ? irqentry_exit_to_user_mode+0x78/0x260
 [214064.246498]  ? irqentry_exit+0x43/0x50

Ответ или решение

К сожалению, анализ журналов ядра после сбоя в системе может представлять собой серьезную задачу, особенно без должного понимания того, что означают различные сообщения об ошибках. В приведенном вами фрагменте из /var/log/kern.log мы видим тревожные предупреждения о зависших задачах в системе Ubuntu. Далее я объясню значение ключевых компонентов этих логов и предоставлю рекомендации по выявлению причин проблемы.

1. Понимание начального сообщения

Событие начинается с команды:

echo 0 > /proc/sys/kernel/hung_task_timeout_secs

Эта команда отключает автоматическое предупреждение о зависших задачах, которые заблокированы более чем на 120 секунд. В вашем случае наблюдаются процессы, такие как systemd, блокированные на период времени более 122 секунд. Это указывает на наличие зависших процессов, которые могут вызвать проблемы с производительностью или стабильностью системы.

2. Разбор сообщения о блокировке процесса

Логи сообщают следующее о процессе systemd (PID 1018):

INFO task systemd1018 blocked for more than 122 seconds.
Not tainted 6.8.0-48-generic #48~22.04.1-Ubuntu
  • PID 1018 – это уникальный идентификатор процесса.
  • stateD – состояние процесса D указывает, что процесс ожидает I/O, и может быть временно заблокирован, ожидая устройств ввода-вывода.

Строка Call Trace предлагает трассировку вызовов, показывающую, как именно процесс выполнялся до того, как попасть в состояние блокировки. Например:

__schedule+0x27c/0x6a0

Указывает на то, что выполнение зашло в функцию планировщика, и процесс не смог продолжить свою работу.

3. Анализ зависших процессов

Далее в логах видно, что другие процессы systemd (например, PID 1034 и 1037) также заблокированы более 122 секунд. Повторяющиеся сообщения являются признаком того, что проблема может быть системной, а не ограниченной конкретным процессом.

4. Причины зависания процессов

Существуют несколько вероятных причин блокировки процессов:

  • Поврежденные диски: Операции чтения/записи на жестком диске могут зависнуть из-за повреждений или ошибок в файловой системе.
  • Недостаток системных ресурсов: Перегрузка CPU или памяти может привести к зависанию процессов.
  • Проблемы с драйверами: Неподходящие или устаревшие драйвера могут вызывать конфликты в работе оборудования.
  • Системные настройки: В некоторых случаях определенные параметры конфигурации системы (например, для планировщика) могут быть причиной проблем.

5. Рекомендации по устранению проблемы

  • Проверка целостности файловой системы: Используйте команду fsck для проверки и исправления ошибок на дисках.
  • Мониторинг ресурсов: Используйте утилиты вроде top, htop или vmstat для мониторинга использования CPU и памяти. Это может помочь определить, есть ли узкие места.
  • Обновление системы и драйверов: Убедитесь, что ваша система и все установленные драйвера актуальны.
  • Просмотр системных журналов: Логи /var/log/syslog и /var/log/dmesg могут содержать дополнительные подсказки.
  • Настройка параметров ядра: В ситуациях, когда вы сталкиваетесь с зависанием задач, возможно, потребуется внести изменения в параметры конфигурации ядра, например, настроить hung_task_timeout_secs более высоким значением для анализа без непосредственного отключения.

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

Оцените материал
Добавить комментарий

Капча загружается...