Гид по технологиям

Быстрое восстановление при «трешинге» в Linux с помощью Magic SysRq

6 min read Linux Обновлено 06 Jan 2026
Magic SysRq: быстрое восстановление при трешинге в Linux
Magic SysRq: быстрое восстановление при трешинге в Linux

Рука над клавишей SysRq, готовящаяся к нажатию

Что такое «трешинг» и почему это важно

Трешинг — состояние, когда у системы недостаточно оперативной памяти и она тратит почти всё время на обмен страницами между RAM и swap. Внешне это выглядит как сильное замедление, зависания браузера и невозможность удобно работать. При трешинге обычные приложения «закапываются», а ответ от системы приходит с большими задержками.

Коротко: трешинг происходит, когда суммарный набор активных страниц превышает возможности памяти и swap, а ядро постоянно перегружено paging-операциями.

Почему Magic SysRq помогает

Magic SysRq — это набор горячих клавиш/команд, встроенных в ядро Linux, которые дают прямой, низкоуровневый интерфейс к некоторым функциям ядра, даже если пользовательский интерфейс завис. Комбинация R,E,I,S,U,B (часто запоминают как REISUB) выполняет безопасную последовательность действий для восстановления контроля и минимизации потерь данных.

Краткий смысл команд REISUB:

  • R — переключить клавиатуру в Raw-режим (возвращает управление X/TTY). Это помогает остановить X-сервер, если он «съел» клавиатурный ввод.
  • E — послать SIGTERM всем процессам, давая им шанс корректно завершиться.
  • I — послать SIGKILL всем процессам, убивая оставшиеся.
  • S — синхронизировать (flush) все файловые системы на диск.
  • U — перемонтировать все файловые системы в режим “только чтение”.
  • B — немедленно перезагрузить систему.

Важно: REISUB минимизирует риск повреждения файловых систем по сравнению с принудительной перезагрузкой питания.

Как правильно выполнить комбинацию на физической клавиатуре

  1. Нажмите и удерживайте Ctrl + Alt + Fn (где Fn — это обычно клавиша над Ctrl/Alt, чаще обозначается как PrtScr/SysRq на некоторых клавиатурах).
  2. Другой рукой нажмите клавишу SysRq (на клавиатриах без явной метки используйте PrtScn / Print Screen).
  3. Отпустите Ctrl + Alt + Fn, продолжая держать SysRq.
  4. Последовательно нажмите клавиши: R, E, I, S, U, B (с небольшими паузами, 1–2 секунды, между нажатиями).
  5. Отпустите все клавиши и дождитесь перезагрузки/возврата контроля.

Если клавиатура комбинирует SysRq и PrtSc на одной клавише, может потребоваться нажимать её вместе с Fn, если у вас ноутбук.

Альтернативный способ: trigger из пользовательской сессии (root)

Если у вас есть доступ к root через SSH или локальную консоль и графический интерфейс реагирует частично, можно отправить команды напрямую в /proc:

# Включить SysRq временно
sudo sh -c 'echo 1 > /proc/sys/kernel/sysrq'

# Отправить действия (пример: синхронизировать и перезагрузить)
sudo sh -c 'echo s > /proc/sysrq-trigger'
sudo sh -c 'echo u > /proc/sysrq-trigger'
sudo sh -c 'echo b > /proc/sysrq-trigger'

Эти команды требуют прав root и работают даже при зависшем X, если ядро отвечает.

Важно: не используйте ‘b’ без предварительной синхронизации и remount в read-only, если хотите минимизировать риск повреждения данных.

Проверка и включение Magic SysRq на постоянной основе

Чтобы сделать sysrq постоянно включённым, добавьте настройку в /etc/sysctl.conf или в соответствующий drop-in для systemd:

# временно
sudo sysctl -w kernel.sysrq=1

# постоянно (в /etc/sysctl.conf)
kernel.sysrq = 1
sudo sysctl -p

Если ваша система была собрана без поддержки CONFIG_MAGIC_SYSRQ в ядре, эта опция недоступна — но это редкость для дистрибутивов общего назначения.

Когда SysRq не помогает — типичные причины

  • Железное зависание: если контроллер ввода/USB завис, клавиатура не передаёт нажатия.
  • Полный дедлок ядра (kernel panic) — SysRq может сработать частично, но не гарантированно.
  • SysRq отключён в конфигурации ядра или через /proc/sys/kernel/sysrq (значение 0).
  • Если у вас удалённый доступ без передачи специальных последовательностей (например, некоторые KVM-решения не пересылают SysRq корректно).

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

Предотвращение трешинга — лучшие практики

  • Следите за использованием памяти: top/htop, free, vmstat помогают увидеть растущий swap и page-in/page-out.
  • Настройте разумный размер swap и рассмотрите zram/zswap для современных ноутбуков с малой RAM.
  • Ограничивайте потребление браузера: отключите тяжёлые вкладки, расширения, используйте облегчённые браузеры.
  • Добавьте физическую память, если рабочие нагрузки регулярно превышают возможности вашего устройства.
  • Для серверов используйте мониторинг и оповещения (Prometheus/Grafana, Zabbix), чтобы реагировать до момента трешинга.

Быстрый план действий (SOP) для пользователя на ноутбуке

  1. Если интерфейс частично откликается, попробуйте закрыть браузер через диспетчер задач (Ctrl+Alt+F2, войти в терминал, pkill -9 firefox).
  2. Если нет реакции — используйте REISUB (описано выше).
  3. Если REISUB недоступен, попытайтесь выполнить команды через SSH с другого хоста (echo > /proc/sysrq-trigger).
  4. Если ничего не помогает — аппаратная перезагрузка (долго удерживать кнопку питания) как крайняя мера.
  5. После восстановления: проверьте журналы (dmesg, /var/log/syslog, journalctl) и выполните fsck при необходимости.

Чек‑лист для администратора перед инцидентом

  • Включить kernel.sysrq=1 или документировать значение по умолчанию.
  • Настроить доступ к консоли/серийному порту / KVM для экстренного доступа.
  • Обучить пользователей процедуре REISUB и правилам безопасной перезагрузки.
  • Настроить мониторинг использования памяти и оповещения.

Критерии приёмки (после использования REISUB)

  • Система успешно перезагрузилась без ошибок монтирования.
  • Файловые системы прошли проверку при очередном монтировании (fsck не сообщил о повреждениях).
  • Журналы сообщают о причинах трешинга и применены корректирующие меры (например, добавление swap, увеличение памяти, ограничение процессов).

Быстрые команды для обнаружения виновника трешинга

# список процессов по использованию памяти
ps aux --sort=-%mem | head -n 20

# интерактивно — htop (если доступно)
htop

# статистика свопа и страниц
vmstat 1 5

Частые альтернативы и когда их применять

  • Перезапуск конкретного процесса (kill -15, затем kill -9) — когда интерфейс реагирует.
  • Увеличение swap или включение zram — предотвращает трешинг на ограниченной памяти.
  • Вертикальное масштабирование (добавление RAM) — долгосрочное решение.
  • Использование более лёгкого окружения рабочего стола или браузера — уменьшение потребления ресурсов.

Короткий глоссарий

  • Трешинг — интенсивный обмен страницами, приводящий к сильному замедлению.
  • SysRq — «магическая» клавиша ядра Linux для отправки низкоуровневых команд.
  • REISUB — мнемоника последовательности команд для безопасной перезагрузки.

FAQ

Работает ли REISUB через SSH?

Да — если на удалённой машине ядро отвечает и у вас есть root-доступ, вы можете писать в /proc/sysrq-trigger.

Опасно ли использовать REISUB на сервере с базой данных?

REISUB пытается корректно завершить процессы (SIGTERM) и синхронизировать данные, но возможны несохранённые транзакции. Перед применением на prod-системах лучше остановить СУБД корректно, если есть такая возможность.

Как проверить, включён ли SysRq?

Посмотрите текущее значение:

cat /proc/sys/kernel/sysrq

Значение 0 означает отключено, 1 — включено (в некоторых системах применяется битмаска).

Итог

Magic SysRq — простой и мощный инструмент в арсенале пользователя и администратора Linux. Он даёт последовательность безопасных действий, которые часто позволяют снизить риск потери данных и аккуратно перезагрузить систему при трешинге. Настройте sysrq заранее, задокументируйте процедуру и используйте мониторинг, чтобы не допускать повторных инцидентов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство