Установка приоритетов для процессов в Linux

Все процессы в системе трудятся с определёнными приоритетами, также называемыми «значениями nice», которые могут изменяться от -20 (верхний приоритет) до 19 (наименьший приоритет). Если оно не определено, каждый процесс будет запускаться с ценностью по умолчанию — 0 («базовым» приоритетом (понятие, показывающее важность, первенство) распределения машинного времени). Для процессов с более рослым приоритетом (меньшим значением nice, вплоть до -20) будет выделено больше целых ресурсов по сравнению с другими процессами с меньшим приоритетом (до 19), предоставляя им большее количество циклов процессора. Все пользователи, кроме рута, могут только понижать приоритет собственных собственных процессов в диапазоне от 0 до 19. Суперпользователь (root) для любого процесса может водворить любое значение приоритета.

Читайте также:  Используем wildcard для того чтобы скачать несколько страниц в Linux

renice

Если один или несколько процессов используют очень много ресурсов системы, вы можете изменить их приоритеты вместо того, чтобы уничтожать их. Для этого используется команда renice. Ее синтаксис:

renice приоритет [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Где приоритет — значение приоритета, pid — идентификатор процесса (используйте опцию -p для указания нескольких действий), pgrp — идентификатор группы процесса (если их несколько, используйте -g) и user — имя пользователя, обладающего процессом (-u для нескольких пользователей). Давайте представим, что вы запустили процесс с PID 785, который исполняет длительные научные вычисления, а пока он работает, вы хотели бы немного расслабится и поиграть, для что вам нужно освободить немного системных ресурсов. Тогда вы можете набрать:

Читайте также:  Astra Linux Сканирование

$ renice +15 785

В данном случае выполнение вашего процесса потенциально может занять больше времени, хотя он не будет забирать процессорное время у других процессов. Если вы системный администратор и приметили, что какой-то пользователь запустил слишком много процессов, и они используют слишком много целых ресурсов, вы можете изменить приоритет процессов этого пользователя при помощи одной команды:

# renice +20 -u peter

После все процессы пользователя peter получат наименьший ценность и не будут затруднять работу процессов других пользователей.

nice

Теперь, когда вы видите о том, что можно изменять приоритеты процессов, вам может понадобиться запустить программу с определенным ценностью. Для этого используйте команду nice. В этом случае вам необходимо указать свою команду в качестве опции для nice. Опция -n используется для установки значения приоритета. По умолчанию nice ставит приоритет 10. Например, вам нужно создать ISO-образ установочного CD-ROM’а с Mandrakelinux:

Читайте также:  Каждую секунду выводим содержимое последнего изменившегося файла в Linux

$ dd if=/dev/cdrom of=~/mdk1.iso

В отдельных системах со стандартным IDE CD-ROM процесс копирования больших объёмов информации может завладеть слишком много ресурсов системы. Чтобы предотвратить блокирование других процессов благодаря копирования, вы можете запустить процесс с пониженным приоритетом при помощи этой команды:

$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.iso

и возобновлять заниматься своими делами.