renice



Предыдущая | Следующая

Настройка приоритетов процессов
Можно изменить распорядок, который ядро назначает процессам, чтобы предо­
ставить какому­либо процессу больше или меньше процессорного времени по срав­
нению с другими процессами. Ядро запускает каждый процесс в соответствии 
с назначенным ему приоритетом, который является числом от –20 до 20, при­
чем –20 означает высший приоритет. (Да, это сбивает с толку!)
Команда ps -l выводит текущий приоритет процесса, однако немного проще 
увидеть приоритеты в действии с помощью команды top.
В приведенном отчете команды top столбец PR («приоритет») содержит текущий 
приоритет ядра для запуска данного процесса. Чем больше число, тем меньше ве­
роятность того, что ядро запланирует этот процесс, если процессорное время не­
обходимо другим процессам. Однако один лишь приоритет запуска не определяет 
решение ядра о предоставлении процессорного времени процессу, к тому же он 
часто меняется во время выполнения команды в соответствии с количеством про­
цессорного времени, потребляемого процессом.
За столбцом приоритета следует столбец, содержащий значение относительно-го приоритета (NI), которое дает рекомендацию планировщику в ядре. Об этом 
значении следует позаботиться, если вы пытаетесь повлиять на решение ядра. Ядро 
прибавляет значение относительного приоритета к текущему приоритету, чтобы 
определить следующий квант времени для данного процесса.
По умолчанию значение относительного приоритета равно 0. Допустим, что вы 
запускаете в фоновом режиме большой объем вычислений и желаете, чтобы он не 
замедлял вашу работу в интерактивном сеансе. Чтобы такой процесс занял послед­
нее место по отношению к другим процессам и работал лишь тогда, когда осталь­
ным задачам нечего делать, можно установить для него значение относительного 
приоритета равным 20 с помощью команды renice (здесь параметр pid — иденти­
фикатор процесса, который вы желаете изменить):
$ renice 20 pid
Если вы пользователь­superuser, можно указать отрицательное значение отно­
сительного приоритета, но такая идея практически всегда является вредной, по­
скольку для системных процессов может не оказаться достаточного количества 
процессорного времени. На самом деле вам, вероятно, не потребуется часто менять 
значения относительного приоритета, поскольку во многих системах Linux всего 
один пользователь, который не выполняет большие объемы вычислений. Значение 
относительного приоритета было гораздо более важным тогда, когда на одном 
компьютере работало несколько пользователей.