Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Soft lockup - CPU# stuck for 22s! Linux / DevOps

Kernel panic: Soft lockup - CPU# stuck for 22s! — Исправление зависания ядра Linux

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «Kernel panic - not syncing: Soft lockup - CPU# stuck for 22s!» генерируется сторожевым таймером планировщика ядра Linux. Это означает, что ядро застряло в цикле внутри режима ядра (kernel space) более чем на 22 секунды, не давая другим процессам получить процессорное квантование времени. Прерывания при этом работают, но планировщик задач не может выполнить смену контекста.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
Soft LockupKernel LoopБесконечный цикл или длительная блокировка в ядре без освобождения ресурсов.
Watchdog Timer22 secondsПревышение порога (обычно 2 * watchdog_thresh + 2 сек).
kernel.softlockup_panic1Вызов перезагрузки / паники ядра при обнаружении soft lockup.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Отключение Transparent Huge Pages (THP)

В 60% случаев на серверах баз данных (Redis, MongoDB, PostgreSQL, 1С) причиной Soft Lockup является процесс khugepaged, дефрагментирующий память:

# Временное отключение:
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag

# Перманентное отключение через GRUB в /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="transparent_hugepage=never"

Сценарий 2: Тюнинг параметров ввода-вывода (Dirty Pages)

Если ядро зависает при сбросе огромных массивов данных на медленный диск:

# Уменьшение размера грязных страниц в памяти:
sudo sysctl -w vm.dirty_background_ratio=5
sudo sysctl -w vm.dirty_ratio=10

# Увеличение таймаута сторожевого таймера до 30 секунд:
sudo sysctl -w kernel.watchdog_thresh=30

Сценарий 3: Настройка параметров виртуализации KVM

Если Linux запущен в виртуалке, активируйте поддержку KVM Async Page Faults и PV Spinlocks на хосте.

Зависают базы данных под высокой нагрузкой?
Специалисты ITSTM оптимизируют подсистемы ввода-вывода, стек TCP и менеджмент памяти под специфику вашего enterprise-стека.
Практический опыт инженера: Для серверов с высокой интенсивностью I/O всегда настраивайте dirty_background_bytes и dirty_bytes в абсолютных значениях (например, 64MB и 128MB), чтобы исключить фризы планировщика на запись буферов.

Частые вопросы (FAQ)

Приводит ли Soft Lockup всегда к падению сервера?

Нет. По умолчанию ядро выводит стек трейс в dmesg и пытается продолжить работу. Но если в sysctl включен параметр kernel.softlockup_panic=1, ядро немедленно уходит в Kernel Panic.

Как найти процесс, вызвавший Soft Lockup?

В выводе Call Trace в dmesg найдите строку 'Comm: <имя_процесса>'. Она указывает на задачу, выполнявшуюся на данном ядре процессора в момент зависания.