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

Magic SysRq для остановки трэшинга в Linux

5 min read Linux Обновлено 06 Dec 2025
Magic SysRq для остановки трэшинга в Linux
Magic SysRq для остановки трэшинга в Linux

Пальцы над клавишей SysRq на клавиатуре ноутбука

О чём речь и почему появляется трэшинг

Трэшинг — это состояние, когда система постоянно подменяет содержимое оперативной памяти страницами на диск и обратно, из‑за сильной нехватки ОЗУ. Процессы замедляются, интерфейс «подвисает», и ничего не откликается. Чаще это случается на старых ноутбуках или при запуске тяжёлых веб‑приложений.

Прямое решение — добавить RAM или использовать своп‑файл/раздел. Но если сейчас это невозможно, Magic SysRq помогает безопасно привести систему в предсказуемое состояние: остановить процессы, синхронизировать данные и перезагрузить систему.

Важно: Magic SysRq — это набор возможностей ядра Linux. На некоторых ноутбуках комбинация требует удержания клавиши Fn или специальных модификаторов.

Когда использовать Magic SysRq

  • Интерфейс полностью заморожен, мышь не двигается, но индикаторы диска мигают.
  • Невозможно корректно завершить один проблемный процесс через SSH или tty.
  • Вы хотите избежать немедленного отключения питания (hard power off), чтобы снизить риск повреждения файлов.

Не используйте, если у вас есть доступ по SSH и можно безопасно завершить проблему дистанционно. Также не помогает при аппаратных отказах (память, диск, материнская плата).

Быстрая инструкция: последовательность клавиш

  1. Если нужно, переключитесь в виртуальную консоль: нажмите Ctrl + Alt + Fn (где Fn — F1…F6) — это даст вам доступ к tty, если графика полностью зависла.
  2. Удерживайте Ctrl + Alt (или Ctrl + Alt + Fn, если вы переключались в tty).
  3. Нажмите и удерживайте клавишу SysRq (если на клавиатуре нет ярлыка SysRq, используйте PrtSc/PrintScreen).
  4. Не отпуская SysRq, поочерёдно нажмите R, E, I, S, U, B (не спешите — паузы 1–2 секунды между буквами полезны).
  5. Отпустите все клавиши.

Пояснение последовательности:

  • R — переключает клавиатуру в «raw» режим (даёт контроль при Xorg/Wayland).
  • E — рассылает SIGTERM всем процессам, кроме init (предлагает им корректно завершиться).
  • I — рассылает SIGKILL всем процессам, кроме init (принудительное завершение).
  • S — запускает sync: сбрасывает буферы на диск, минимизируя потерю данных.
  • U — перемонтирует все файловые системы в режим «только для чтения», защищая их от дальнейших изменений.
  • B — немедленно перезагружает систему.

После завершения последовательности система обычно перестаёт трешить и перезагружается в предсказуемом состоянии.

Включение и проверка Magic SysRq

Параметр ядра контролирует доступность SysRq: /proc/sys/kernel/sysrq

  • Чтобы проверить текущую настройку, выполните:
cat /proc/sys/kernel/sysrq
  • Чтобы временно включить все возможности Magic SysRq (требуются права root):
echo 1 > /proc/sys/kernel/sysrq
  • Чтобы сделать изменение постоянным, добавьте строку в /etc/sysctl.conf:
kernel.sysrq = 1

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

Что делать, если последовательность не работает

  • Проверьте, действительно ли клавиша SysRq срабатывает на вашей клавиатуре (иногда её нужно активировать через Fn+PrtSc).
  • Убедитесь, что /proc/sys/kernel/sysrq не равен 0.
  • Если система полностью «упала» на аппаратном уровне (умирающая память, контроллеры), SysRq может не сработать.
  • Если у вас есть удалённый доступ по SSH, попытайтесь подключиться и завершить проблемные процессы вручную (ps, top, kill).

Альтернативы и дополнительные подходы

  • Онлайн‑мониторинг процессов: ps, top, htop — чтобы выявить потребителя памяти.
  • Настройка swappiness и добавление swap‑файла для снижения вероятности трэшинга.
  • Ограничение потребления памяти через cgroups или systemd‑службы.
  • Использование рантайм‑профайлеров и оптимизация проблемных приложений.

Пошаговый SOP (оперативный план) — для пользователя за 1–2 минуты

  1. Попробуйте переключиться в tty: Ctrl + Alt + F2. Если tty откроется, войдите и посмотрите top/ps.
  2. Если tty недоступна и система не отвечает: подготовьте руки к клавиатуре. Убедитесь, что вы знаете, где SysRq/PrtSc.
  3. Удерживайте Ctrl + Alt (и Fn, если требуется на ноутбуке).
  4. Удерживая эти клавиши, нажмите SysRq.
  5. Поочерёдно нажмите R→E→I→S→U→B, делая небольшие паузы.
  6. Дождитесь перезагрузки. Если система не перезагрузилась — принудительное отключение питания как крайняя мера.

Чек‑лист для разных ролей

  • Для пользователя:

    • Проверьте, работает ли клавиша PrtSc как SysRq.
    • Запомните последовательность R E I S U B.
    • Не дергайте питание, если можно дождаться перезагрузки.
  • Для системного администратора:

    • Настройте kernel.sysrq в sysctl для нужного уровня доступа.
    • Ограничьте критичные сервисы через cgroups.
    • Введите процедуру информирования пользователей о безопасном использовании SysRq.

Ментальные модели и когда это не поможет

Ментальная модель: трэшинг — это ревностный обмен страниц между RAM и swap; цель Magic SysRq — «быстро и аккуратно остановить систему», уменьшив риск потери данных. Если проблема — аппаратный отказ или повреждённая файловая система, последовательность R→E→I→S→U→B не устранит источник неисправности.

Мини‑факты (Fact box)

  • Где настраивается: /proc/sys/kernel/sysrq
  • Команда включения: echo 1 > /proc/sys/kernel/sysrq
  • Типичная последовательность: R E I S U B
  • Риски: некорректное выключение может всё равно повредить данные, поэтому S и U важны перед B.

Простая диаграмма принятия решения (Mermaid)

flowchart TD
  A[Система зависла?] -->|Да| B{Есть SSH/tty доступ?}
  B -->|Да| C[Подключиться и kill/анализ]
  B -->|Нет| D[Использовать Magic SysRq]
  D --> E{SysRq включён?}
  E -->|Да| F[Выполнить R E I S U B]
  E -->|Нет| G[Попробовать включить /proc/sys/kernel/sysrq или принудительная перезагрузка]
  C --> H[Решение найдено]
  F --> H
  G --> H

Критерии приёмки

  • Система после выполнения R→E→I→S→U→B корректно перезагружается или прекращает трэшинг.
  • Файловые системы корректно синхронизированы и перемонтированы в RO перед перезагрузкой.
  • Логи (после загрузки) показывают, что была инициирована последовательность SysRq.

Краткий словарь (1‑строчка)

  • SysRq: специальная функция ядра Linux для аварийного управления системой.
  • SIGTERM: сигнал для корректного завершения процесса.
  • SIGKILL: принудительное завершение процесса.
  • Thrashing: интенсивное обращение к swap из‑за нехватки RAM.

Заключение

Magic SysRq — удобный и проверенный инструмент для безопасного выхода из состояния трэшинга без использования «жёсткого» отключения питания. Он не заменяет профилактику (добавление RAM, swap, лимиты ресурсов), но может стать спасением в критический момент.

Важно: используйте его аккуратно и по инструкции. Обсудите включение и политику использования 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 — руководство