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

О чём речь и почему появляется трэшинг
Трэшинг — это состояние, когда система постоянно подменяет содержимое оперативной памяти страницами на диск и обратно, из‑за сильной нехватки ОЗУ. Процессы замедляются, интерфейс «подвисает», и ничего не откликается. Чаще это случается на старых ноутбуках или при запуске тяжёлых веб‑приложений.
Прямое решение — добавить RAM или использовать своп‑файл/раздел. Но если сейчас это невозможно, Magic SysRq помогает безопасно привести систему в предсказуемое состояние: остановить процессы, синхронизировать данные и перезагрузить систему.
Важно: Magic SysRq — это набор возможностей ядра Linux. На некоторых ноутбуках комбинация требует удержания клавиши Fn или специальных модификаторов.
Когда использовать Magic SysRq
- Интерфейс полностью заморожен, мышь не двигается, но индикаторы диска мигают.
- Невозможно корректно завершить один проблемный процесс через SSH или tty.
- Вы хотите избежать немедленного отключения питания (hard power off), чтобы снизить риск повреждения файлов.
Не используйте, если у вас есть доступ по SSH и можно безопасно завершить проблему дистанционно. Также не помогает при аппаратных отказах (память, диск, материнская плата).
Быстрая инструкция: последовательность клавиш
- Если нужно, переключитесь в виртуальную консоль: нажмите Ctrl + Alt + Fn (где Fn — F1…F6) — это даст вам доступ к tty, если графика полностью зависла.
- Удерживайте Ctrl + Alt (или Ctrl + Alt + Fn, если вы переключались в tty).
- Нажмите и удерживайте клавишу SysRq (если на клавиатуре нет ярлыка SysRq, используйте PrtSc/PrintScreen).
- Не отпуская SysRq, поочерёдно нажмите R, E, I, S, U, B (не спешите — паузы 1–2 секунды между буквами полезны).
- Отпустите все клавиши.
Пояснение последовательности:
- 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 минуты
- Попробуйте переключиться в tty: Ctrl + Alt + F2. Если tty откроется, войдите и посмотрите top/ps.
- Если tty недоступна и система не отвечает: подготовьте руки к клавиатуре. Убедитесь, что вы знаете, где SysRq/PrtSc.
- Удерживайте Ctrl + Alt (и Fn, если требуется на ноутбуке).
- Удерживая эти клавиши, нажмите SysRq.
- Поочерёдно нажмите R→E→I→S→U→B, делая небольшие паузы.
- Дождитесь перезагрузки. Если система не перезагрузилась — принудительное отключение питания как крайняя мера.
Чек‑лист для разных ролей
Для пользователя:
- Проверьте, работает ли клавиша 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 с вашими администраторами, чтобы избежать злоупотреблений.
Похожие материалы
Резервная копия Gmail на локальном диске
Отслеживание посылок Amazon через Echo
Как обойти заблокированные сайты: VPN, Tor и альтернативы
Удаление фона портрета в Luminar Neo
Chromebook: доступ к папкам, принтерам и VPN