Обзор
В условиях нехватки ресурсов сервера выполнение фоновых задач или ресурсоемких пакетных скриптов может привести к замедлению отклика критически важных служб. В этой статье рассматриваются практические рекомендации по использованию команд nice и renice для настройки приоритетов планировщика CPU и поддержания стабильности системы.
1. Проверка приоритета процесса (NI/PR) и настройка среды мониторинга htop
Установите пакеты htop и procps — необходимые инструменты для практического мониторинга приоритетов процессов.

Команда ps позволяет проверить подробную информацию и значения приоритетов процессов, запущенных в системе.
В выводе команды NI представляет собой значение nice, настраиваемое пользователем, а PRI — фактический приоритет, назначенный планировщиком ядра.
⚙️ [Основные опции]
-e : выбрать и отобразить все процессы, запущенные в системе.-o : настроить пользовательский формат отображения колонок (pid, ni, pri, comm и т. д.).-u : фильтровать и отображать процессы, принадлежащие определенному пользователю.-p : просмотреть только процессы с указанным PID (идентификатором процесса).-f : вывести список в полном формате, содержащий все подробные сведения о процессах.

2. Запуск фоновой задачи с низким приоритетом с помощью команды nice
Создайте временный рабочий каталог и перейдите в него для безопасного создания и управления тестовыми файлами.

Запустите операцию создания большого файла в фоновом режиме (&), установив с помощью команды nice значение nice, равное 10. Это понизит приоритет процесса, уступая ресурсы CPU другим задачам.

Используя комбинацию команд ps и grep, проверьте PID запущенного процесса dd и убедитесь, что фактическое значение nice (NI) установлено должным образом.

3. Изменение приоритета уже запущенного процесса в реальном времени с помощью renice
Для практики изменения приоритета в реальном времени запустите в фоновом режиме (&) процесс sleep, который ожидает в течение 300 секунд.

Сохраните в переменную окружения TARGET_PID значение специальной переменной $!, которая содержит идентификатор (PID) последнего процесса, запущенного в фоновом режиме.

Проверьте текущее значение nice (NI) целевого процесса с помощью команды ps. Можно заметить, что процесс выполняется со значением по умолчанию 0.

С помощью команды renice измените значение nice уже работающего целевого процесса на 15, чтобы понизить его приоритет.
Вывод команды подтверждает, что прежний приоритет (old priority 0) был успешно изменен на новый (new priority 15).

Снова выполните команду ps для целевого процесса, чтобы убедиться, что значение nice (NI), равное 15, применилось мгновенно.

После завершения практической работы принудительно завершите тестовый процесс (kill -9), чтобы освободить системные ресурсы.

4. Назначение высокого приоритета (отрицательный nice) с правами root и меры предосторожности
Чтобы применить отрицательное значение nice (-5), которое не может быть установлено обычным пользователем, запустите процесс с повышенным приоритетом в фоновом режиме (&), используя права администратора через sudo.
Процесс с отрицательным значением nice получает более высокий приоритет при планировании CPU, что позволяет выделять ему ресурсы системы в приоритетном порядке.

С помощью команды ps найдите работающие процессы и убедитесь, что значение nice (NI) целевого процесса (sleep) успешно установилось в -5.
В выводе команды видно, что в отличие от стандартных процессов со значением по умолчанию (0), для данного процесса установлено отрицательное значение nice (-5), и он выполняется с высоким приоритетом.

Мы рассмотрели базовые способы управления приоритетами процессов с помощью команды nice, которые полезно применять при снижении производительности сервера Linux.
В условиях дефицита ресурсов сервера назначайте подходящие приоритеты в зависимости от ситуации, чтобы обеспечить стабильную и бесперебойную работу системы.