Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

Зависания при 100% CPU — пошаговая инструкция

Установка Archlinux 2019 за 15 минут Зависания при 100% CPU — пошаговая инструкция. Решение проблем с зависаниями системы при высокой нагрузке на процессор.

Шаг 1. Меньше использовать swap (снизить I/O при нехватке памяти)

Проблема: При 100% CPU и нехватке RAM система активно пишет в swap. Диск не успевает — всё «висит».

Решение:

  1. Открой файл через nano или другой редактор /etc/sysctl.d/.
  2. Скопируй конфиг: ```bash

    Снижение риска зависаний при 100% CPU (Arch Linux)

    Копировать в /etc/sysctl.d/ и выполнить: sudo sysctl –system

Реже использовать swap — меньше I/O при нехватке памяти, меньше «подвисаний»

vm.swappiness = 10

Меньше грязных страниц перед сбросом на диск — меньше резких всплесков I/O

vm.dirty_ratio = 20 vm.dirty_background_ratio = 5

Отключить autogroup: планировщик не будет отдавать все ядра одной группе (например одному make)

Может улучшить отзывчивость десктопа при тяжёлой фоновой задаче

kernel.sched_autogroup_enabled = 0

3. Примени настройки:
   ```bash
   sudo sysctl --system
  1. Готово. Swap будет использоваться реже (swappiness=10), нагрузка на диск снизится.

Шаг 2. Не отдавать все ядра одной задаче (отзывчивость десктопа)

Проблема: Одна тяжёлая задача (сборка, браузер) забирает все ядра — мышь и окна не реагируют.

Решение:

  1. Конфиг из Шага 1 уже отключает autogroup (kernel.sched_autogroup_enabled=0). Ничего дополнительно не делай, если шаг 1 выполнен.
  2. Для тяжёлых сборок ограничь параллелизм. Открой файл:
    nano ~/.bashrc
    
  3. В конец файла добавь строку:
    export MAKEFLAGS=-j2
    
  4. Сохрани (Ctrl+O, Enter, Ctrl+X).
  5. Перезайди в терминал или выполни:
    source ~/.bashrc
    

    Теперь make по умолчанию будет использовать 2 потока, остальные — для системы и интерфейса.


Шаг 3. Запускать тяжёлые задачи с пониженным приоритетом

Проблема: Тяжёлая программа конкурирует с рабочим столом за CPU на равных — всё лагает.

Решение:

  1. Запускай долгие задачи через nice:
    nice -n 10 make -j2
    

    или, например:

    nice -n 10 your_heavy_script
    
  2. Так они получают меньший приоритет, планировщик чаще даёт CPU интерфейсу.

Шаг 4. (По желанию) Ядро linux-zen — лучше отзывчивость под нагрузкой

Проблема: Даже после шагов 1–3 при 100% CPU интерфейс иногда «залипает».

Решение:

  1. Установи ядро zen:
    sudo pacman -S linux-zen
    
  2. Перезагрузись.
  3. В меню загрузчика (GRUB/systemd-boot) выбери Arch Linux (zen) вместо обычного Arch Linux.
  4. Если загрузчик не показывает меню: подержи Shift при включении (GRUB) или в bootctl выбери запись с zen.

Дальше система будет загружаться с zen. Откат: при загрузке снова выбрать обычное ядро Arch Linux.


Шаг 5. (По желанию) Автоперезагрузка при полном зависании ядра

Проблема: При полном зависании приходится держать кнопку питания — хочется автоматическую перезагрузку.

Решение:

  1. Создай файл:
    sudo nano /etc/sysctl.d/99-watchdog-panic.conf
    
  2. Вставь строки:
    kernel.softlockup_panic = 1
    kernel.panic = 10
    
  3. Сохрани и примени:
    sudo sysctl --system
    

    При срабатывании детектора зависания ядра система сама уйдёт в panic и через 10 секунд перезагрузится.


Краткий чек-лист

Шаг Действие Обязательно?
1 Скопировать и применить 99-arch-freeze-mitigation.conf Да
2 Добавить MAKEFLAGS=-j2 в ~/.bashrc Рекомендуется
3 Запускать тяжёлые задачи через nice -n 10 ... По ситуации
4 Установить и загружаться с linux-zen По желанию
5 Включить softlockup_panic для автоперезагрузки По желанию

После Шагов 1 и 2 уже должно стать заметно реже «зависать». Остальное — по необходимости.



Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.