Когда процессор занят, ядро делит его между процессами в R. Каждому процессу можно сказать, уступать ли другим.
Число nice процесса — от −20 до 19, по умолчанию 0. Чем оно больше, тем меньшую долю процессора планировщик ядра отдаёт процессу, когда за процессор спорят несколько. Если процессор свободен, процесс с nice 19 работает в полную силу. В top nice виден в столбце NI, время таких процессов попадает в поле ni строки %Cpu(s).
Поднять nice своему процессу, то есть уступить, может владелец. Опустить — забрать процессор у других — только root: от student renice -n 0 для процесса с nice 5 печатает Permission denied.
nice сравнивает процессы одной службы или одного сеанса терминала. Разные службы systemd делят процессор между собой поровну при любом nice: каждая работает в своей cgroup.
Твой процесс работает с 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 действует между процессами одной службы или одного сеанса.