Nice= и приоритеты планирования в systemd
Задаёт приоритет процессорного времени процессов службы: от −20 (наивысший) до 19 (наименьший). Влияет на то, кому планировщик отдаёт процессор при конкуренции.
Что делает
Положительные значения безопасны и не требуют прав: так помечают фоновые задачи, которые должны уступать. Отрицательные требуют возможности CAP_SYS_NICE и применяются редко — обычно к службам, чувствительным к задержкам.
Рядом стоят более тонкие механизмы: CPUSchedulingPolicy= для политики планирования и IOSchedulingClass= для приоритета дисковых операций. Для фоновой задачи, которая мешает диску, второй обычно важнее первого.
Где ставится. В секции [Service].
Значения
| Значение | Что происходит |
|---|---|
Nice=10 | фоновая задача: уступает остальным. |
Nice=-5 | повышенный приоритет; требует прав. |
IOSchedulingClass=idle | дисковые операции только когда диск свободен. |
CPUSchedulingPolicy=batch | политика для пакетных задач без интерактивности. |
Пример
Ночное резервное копирование, которое не должно мешать работе.
[Service]
Nice=15
IOSchedulingClass=idle
IOSchedulingPriority=7
CPUWeight=20
Для задач, нагружающих диск, приоритет ввода-вывода даёт больший эффект, чем приоритет процессора.
Типичные ошибки
Отрицательные значения без прав дают код 201/NICE при запуске.
Приоритет действует только при конкуренции: на свободной машине эффекта не будет.
Политики реального времени (fifo, rr) требуют прав и предела LimitRTPRIO=; без них запуск падает с кодом 214.
Связанные ошибки
- status=201/NICE в systemdКод 201/NICE: systemd не смог выставить приоритет процесса из Nice=. Обычно мешает предел LimitNICE или отсутствие прав.
- status=214/SETSCHEDULER в systemdКод 214/SETSCHEDULER: не удалось применить политику планирования процессора из CPUSchedulingPolicy=. Обычно из-за прав или диапазона приоритета.
- status=211/IOPRIO в systemdКод 211/IOPRIO: не удалось задать приоритет ввода-вывода из IOSchedulingClass= или IOSchedulingPriority=.
Рядом стоящие параметры
Источники
- systemd.exec(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)