Материал просмотрен 2,188 раз(а)

После разговора о могуществе утилиты top я просто обязан рассказать ещё об одной программе, с помощью которой можно изменить приоритет планирования процесса. Таким инструментом является команда renice, которая изменяет приоритет любого выполняющегося процесса.

В каком диапазоне лежит приоритет?

Приоритет планирования представлен числом от -20 до 20, где -20 – наивысший приоритет, 20 – самый низкий. Если взглянуть на результаты вывода утилиты top, то можно увидеть, что приоритет показан в столбце NICE. Обратите внимание, что большинство процессов имеют приоритет 0 (по-умолчанию, средний).

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

Как менять уровень приоритета?

Существует два способа изменить приоритет процесса:

  1. Из командной оболочки:
    # renice <pri> <pID>
    где pri – уровень приоритета -20…20, а pID – идентификатор процесса.
    # renice 10 23083
    эта команда изменит приоритет процесса с pID = 23083 до уровня 10.
  2. Интерактивно из утилиты top:
    Для этого запускаем утилиту top и нажимаем клавишу <R>. Нам будет предложено ввести уровень приоритета и pID процесса, аналогично вводу в режиме команд.

Для чего применяется изменение приоритета?

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

Команда nice

Команда nice является как программой (/usr/bin), так и встроенной командой оболочки в csh/tcsh, позволяет установить приоритет запускаемого процесса.

Например, нам нужно запустить нашу программу из предыдущего примера с пониженным приоритетом:

# /usr/bin/nice -10 ./cicle.exe

запустит наш скрипт с приоритетом 10. Если нужно задавать повышенный приоритет, то знак “-” удваивается. Например:

# /usr/bin/nice –16 ./cicle.exe