1 авг. 2008 г.

nice, renice: приоритеты процессов

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

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

nice

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

$ dd if=/dev/cdrom of=~/mdk1.iso
В некоторых системах со стандартным IDE CD-ROM процесс копирования больших объёмов информации может захватить слишком много ресурсов системы. Чтобы предотвратить блокирование других процессов из-за копирования, вы можете запустить процесс с пониженным приоритетом при помощи этой команды:

$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.iso
и продолжать заниматься своими делами.

Комментариев нет: