nice - запустить программу с измененным приоритетом для планировщика задач

 

СИНТАКСИС

nice [-n смещение] [-смещение] [--adjustment=смещение] [--help] [--version] [команда [аргумент...]]

 

ОПИСАНИЕ

Эта страница руководства описывает GNU версию команды nice. Заметьте, что большинство шеллов имеют встроенную команду с тем же именем и со сходной функциональностью.

Если не указано ни одного аргумента, команда nice выводит текущий унаследованный приоритет для планировщика задач. В противном случае nice запускает указанную команду с измененным приоритетом. Если смещение не указано, то приоритет команды увеличивается на 10. Привилегированный пользователь (root) может указать отрицательное смещение. Команда nice может смещать приоритет в диапазоне от -20 (наивысший приоритет) до 19 (низший приоритет) от текущего.

 

ОПЦИИ

-n смещение, -смещение, --adjustment=смещение

Увеличить приоритет команды на смещение (вместо 10 по умолчанию).

--help

Вывести на стандартный вывод краткую подсказку и успешно завершиться.

--version

Вывести на стандартный вывод информацию о версии и успешно завершиться.

Приоритеты исполнения процесса

Эта тема описывает материал темы 1.103.6 экзамена Junior Level Administration (LPIC-1) 101. Тема имеет вес 3.

В этом разделе вы изучите следующие темы:

Приоритеты исполнения процесса

Установка приоритетов

Изменение приоритетов

Приоритеты

Как мы уже видели в предыдущем разделе, Linux, как и большинство современных операционных систем выполняет множество процессов. Это достигается путем разделения CPU и других ресурсов всеми процессами. Если некоторый процесс может использовать 100% ресурсов CPU, то другие процессы могут перестать отвечать на запросы и вообще что-то делать. Когда мы рассматривали Статус процесса в предыдущем разделе, то видели, что вывод по умолчанию команды top выдает список процессов, расположенных в порядке убывания потребления ресурсов CPU. Если мы запустим наши часы и команду top, то вряд ли увидим этот процесс в списке, потому как большую часть времени он не использует ресурсы CPU.

В вашей системе могут быть команды, которые могут использовать несколько CPU. Это такие программы как видео-редакторы, программы преобразования изображений или же кодирования звука, как например mp3 в ogg.

Мы создадим небольшой сценарий, который использует CPU и делает немного больше. Он принимает два параметра, счетчик и метку. Он выводит метку, текущую дату и время, затем уменьшает счетчик до тех пор, пока не достигнет 0, затем снова печатает метку и дату. Этот сценарий не проверяет ошибки, но зато он подходит для иллюстрации.

Листинг 100. Скрипт, интенсивно использующий CPU

[ian@echidna ian]$ echo 'x="$1"'>count1.sh

[ian@echidna ian]$ echo 'echo "$2" $(date)'>>count1.sh

[ian@echidna ian]$ echo 'while [ $x -gt 0 ]; do let x=$x-1;done'>>count1.sh

[ian@echidna ian]$ echo 'echo "$2" $(date)'>>count1.sh

[ian@echidna ian]$ cat count1.sh

x="$1"

echo "$2" $(date)

while [ $x -gt 0 ]; do let x=$x-1;done

echo "$2" $(date)

Если вы запустили этот сценарий на своей системе, то можете увидеть результат как в Листинге 101. Этот сценарий интенсивно использует CPU, как мы скоро увидим. Если вы используете не свою рабочую станцию, убедить что вам можно использовать ресурсы CPU .

Листинг 101. Запуск count1.sh

[ian@echidna ian]$ sh count1.sh 10000 A

A Mon Nov 14 07:14:04 EST 2005

A Mon Nov 14 07:14:05 EST 2005

[ian@echidna ian]$ sh count1.sh 99000 A

A Mon Nov 14 07:14:26 EST 2005

A Mon Nov 14 07:14:32 EST 2005

Пока все хорошо. Давайте теперь используем полученные ранее знания и создадим список команд, давайте запустим сценарий в фоновом режиме работы и используем команду top, чтобы увидеть количество ресурсов CPU, потребляемое сценарием. Список команд показан в Листинге 102, а вывод команды top в Листинге 103.

Листинг 102. Запуск count1.sh и top

[ian@echidna ian]$ (sh count1.sh 99000 A&);top

Листинг 103. Интенсивное использование CPU

7:20am up 48 days, 20:54, 2 users, load average: 0.05, 0.05, 0.00

91 processes: 88 sleeping, 3 running, 0 zombie, 0 stopped

CPU states: 0.1% user, 0.0% system, 0.0% nice, 0.9% idle

Mem: 1030268K av, 1002864K used, 27404K free, 0K shrd, 240336K buff

Swap: 1052216K av, 118500K used, 933716K free 605152K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND

8684 ian 20 0 1044 1044 932 R 98.4 0.1 0:01 sh

Неплохо. С помощью простого сценария мы заняли 98.4% ресурсов CPU.

В начало


Отображение и установка приоритетов

Если мы выполняем большую задачу, то можем обнаружить, что она влияет на нашу возможность (или же возможности других пользователей) выполнения других задач в системе. Системы Linux и UNIX используют систему приоритетов из 40 значений, начиная от -20 (наивысший приоритет) и заканчивая 19 (низший приоритет).

nice

Процессы обычных пользователей обычно имеют нулевой приоритет. Команда nice отобразит наш приоритет по умолчанию. Команда ps также может отображать приоритет (nice, или NI, уровень), например с помощью опции -l. Проиллюстрируем на примере Листинга 104, в которым выделен наш приоритет в виде значения 0.

Листинг 104. Отображение информации о приоритетах

[ian@echidna ian]$ nice

0

[ian@echidna ian]$ ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

000 S 500 7283 7282 0 70 0 - 1103 wait4 pts/2 00:00:00 bash

000 R 500 9578 7283 0 72 0 - 784 - pts/2 00:00:00 ps

Команда nice также может использоваться для запуска процесса с другим приоритетом. Вы можете использовать опцию -n или (--adjustment) вместе с положительным числом, чтобы увеличить приоритет или отрицательное число, чтобы уменьшить его. Помните, что процесс с наименьшим значением приоритета работает чаще всех, поэтому считайте, что увеличение значения приоритета означает для процесса быть более дружелюбным по отношению к другим процессам. Заметим, что вам обычно требуются права суперпользователя (root), чтобы применять отрицательные значения. Другими словами, обычные пользователи могут только сделать свои процессы более дружелюбными. В Листинге 105, мы запустим две копии сценария count1.sh в фоновом режиме с разными приоритетами исполнения. Заметим, что между окончанием их работы появилась задержка в 5 секунд. Попытайтесь поэкспериментировать с разными значениями nice, или же запустить с другим значением приоритета, чтобы увидеть возможную разницу.

Листинг 105. Использование nice для установки приоритетов

[ian@echidna ian]$ (sh count1.sh 99000 A&);\

> (nice -n 19 sh count1.sh 99000 B&);\

> sleep 2;ps -l;sleep 20

B Mon Nov 14 08:17:36 EST 2005

A Mon Nov 14 08:17:36 EST 2005

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

000 S 500 7283 7282 0 70 0 - 1104 wait4 pts/2 00:00:00 bash

000 R 500 10765 1 84 80 0 - 1033 - pts/2 00:00:01 sh

000 R 500 10767 1 14 79 19 - 1033 - pts/2 00:00:00 sh

000 R 500 10771 7283 0 72 0 - 784 - pts/2 00:00:00 ps

A Mon Nov 14 08:17:43 EST 2005

B Mon Nov 14 08:17:48 EST 2005

Заметим также, что, как и в команде nohup вы не можете использовать список команд или конвейер как аргумент nice.

В начало


Изменение приоритетов

renice

Если вы запустили процесс и поняли, что он должен работать с другим приоритетом, то существует способ изменить приоритет работающего процесса с помощью команды renice. Вы указываете абсолютный приоритет (а не величину изменения) процесса или процессов, приоритет которых хотите изменить. Смотри Листинг 106.

Листинг 106. Использование renice для изменения приоритетов

[ian@echidna ian]$ sh count1.sh 299000 A&

[1] 11322

[ian@echidna ian]$ A Mon Nov 14 08:30:29 EST 2005

[ian@echidna ian]$ renice +1 11322;ps -l

11322: old priority 0, new priority 1

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

000 S 500 7283 7282 0 75 0 - 1104 wait4 pts/2 00:00:00 bash

000 R 500 11322 7283 96 77 1 - 1032 - pts/2 00:00:11 sh

000 R 500 11331 7283 0 76 0 - 786 - pts/2 00:00:00 ps

[ian@echidna ian]$ renice +3 11322;ps -l

11322: old priority 1, new priority 3

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

000 S 500 7283 7282 0 75 0 - 1104 wait4 pts/2 00:00:00 bash

000 R 500 11322 7283 93 76 3 - 1032 - pts/2 00:00:16 sh

000 R 500 11339 7283 0 76 0 - 785 - pts/2 00:00:00 ps

Больше информации о командах nice и renice вы можете получить из man-страниц.

Начало формы

WWW CITForum.ru

Конец формы

Новости мира IT:

12.11 - Google создал сервис по поиску очагов эпидемии гриппа

12.11 - Аналитики подсчитали себестоимость гуглофона

12.11 - Microsoft нашла вредоносное ПО в каждом сотом компьютере

12.11 - Дело пермского учителя Поносова возобновляется

12.11 - У пользователей Gmail появился видеочат

12.11 - Novell объявляет о поддержке Linux-пользователей Red Hat и CentOS

12.11 - Выпущена бета-версия мобильного браузера Opera Mini 4.2

12.11 - Интернет-зависимость признали клиническим заболеванием

12.11 - Американцы создали самый мощный суперкомпьютер в мире

12.11 - В Москве поставят памятник символу "@"

12.11 - T-Mobile запускает беспрецедентную рекламную кампанию G1 в онлайне

12.11 - Впервые в России ноутбуки по объему поставок обогнали настольные ПК

11.11 - Россия и Куба создадут «Остров Свободы» в противовес Microsoft

11.11 - Nvidia представила самую мощную видеокарту в мире

11.11 - Visa пробует пластиковые карты с одноразовыми кодами

11.11 - Microsoft заключила с Sun Microsystems соглашение по веб-поиску

11.11 - Начинается второй тур последнего Кубка Яндекса

11.11 - Dell отложила выпуск конкурента iPod

11.11 - Самыми дорогими российскими брендами оказались Билайн и МТС

10.11 - Sun выпускает новые открытые системы хранения

10.11 - Компания Huawei запустит первую сеть LTE в 2009 году

10.11 - Ericsson рассказала о своем видении мобильника 2012 года

10.11 - В карты Microsoft добавили панорамные фотографии

10.11 - MySpace планирует выпустить конкурента iPod

10.11 - Стив Балмер не увидел в Android конкурента для Windows Mobile

10.11 - Песню Led Zeppelin сыграли на телефонах iPhone

10.11 - Владельцы смартфонов Nokia могут публиковать записи в Блогах@Mail.Ru

07.11 - Microsoft прокомментировала готовность Yahoo возобновить переговоры о слиянии

07.11 - Microsoft готовит очередную порцию заплаток

07.11 - Последняя уязвимость Microsoft используется для кражи конфиденциальной информации

Все новости на CitCity.ru

Производство серверов Подбор сервера под задачу Он-лайн конфигуратор серверов

NICE(1)

НАЗВАНИЕ nice - выполнение команды с пониженным приоритетом

СИНТАКСИС

nice [-коэффициент_понижения] команда [аргумент ...]

ОПИСАНИЕ Команда nice выполняет команду с пониженным приоритетом. Коэффициент_понижения задается в диапазоне 1-19 (по умолчанию равен 10).

Суперпользователь может выполнять команды с повышенным приоритетом, для этого нужно указать отрицательный коэффициент_понижения, например --10.

СМ. ТАКЖЕ nohup(1). nice(2) в Справочнике программиста.

КОД ЗАВЕРШЕНИЯ Команда nice возвращает код завершения подчиненной команды.

СЮРПРИЗЫ Коэффициент_понижения, больший 19, принимается равным 19. Если обычный пользователь указывает отрицательный коэффициент_понижения, команда выполняется с нормальным приоритетом.

Соседние файлы в папке материалы к собеседованию