Вопрос или проблема
Система 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
более высоким значением для анализа без непосредственного отключения.
Если после выполнения этих шагов система продолжает зависать, может потребоваться углубленный анализ конфигурации системы и аппаратных средств. Обсудите поведение вашей системы с более опытными коллегами или обратитесь за поддержкой к профессионалам, чтобы провести детальную диагностику.