Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 1 из 12

Load average и загрузка процессора

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 7 · теория · 4 мин

Приоритет nice

Когда процессор занят, ядро делит его между процессами в R. Каждому процессу можно сказать, уступать ли другим.

Число nice процесса — от −20 до 19, по умолчанию 0. Чем оно больше, тем меньшую долю процессора планировщик ядра отдаёт процессу, когда за процессор спорят несколько. Если процессор свободен, процесс с nice 19 работает в полную силу. В top nice виден в столбце NI, время таких процессов попадает в поле ni строки %Cpu(s).

bash
nice -n 19 tar -czf /var/backups/www.tar /var/www  # сразу с nice 19
sudo renice -n 19 -p 1234       # nice работающего процесса
ps -o pid,ni,comm -p 1234       # проверить

Поднять nice своему процессу, то есть уступить, может владелец. Опустить — забрать процессор у других — только root: от student renice -n 0 для процесса с nice 5 печатает Permission denied.

Заметка

nice сравнивает процессы одной службы или одного сеанса терминала. Разные службы systemd делят процессор между собой поровну при любом nice: каждая работает в своей cgroup.

Проверь себя 1 вопрос

Твой процесс работает с nice 10. Что напечатает renice -n 5 -p <PID>, набранная от student без sudo?

  • Владелец может только поднять nice — уступить процессор. 5 меньше 10: так процесс заберёт процессор у других, а это право root.

  • renice -n задаёт новое значение: renice -n 10 для процесса с nice 5 печатает old priority 5, new priority 10.

Опустить nice — значит забрать процессор у других процессов, и это может только root. Поднять nice своему процессу можно и без sudo.

Главное в шаге

  • nice — от −20 до 19: чем больше, тем меньше процессора получает процесс, когда за процессор спорят.
  • nice -n задаёт nice при запуске, renice -n … -p PID — работающему процессу; опустить nice может только root.
  • nice действует между процессами одной службы или одного сеанса.
Ubuntu 24.04
Загрузка…