Command renice in package util linux

renice — Man Page

alter priority of running processes

Examples (TL;DR)

  • Change priority of a running process: renice -n niceness_value -p pid
  • Change priority of all processes owned by a user: renice -n niceness_value -u user
  • Change priority of all processes that belong to a process group: renice -n niceness_value —pgrp process_group

Synopsis

renice [-n] priority [-g|-p|-u] identifier.

Description

renice alters the scheduling priority of one or more running processes. The first argument is the priority value to be used. The other arguments are interpreted as process IDs (by default), process group IDs, user IDs, or user names. renice‘ing a process group causes all processes in the process group to have their scheduling priority altered. renice‘ing a user causes all processes owned by the user to have their scheduling priority altered.

Options

Specify the scheduling priority to be used for the process, process group, or user. Use of the option -n or —priority is optional, but when used it must be the first argument.

Interpret the succeeding arguments as process group IDs.

Interpret the succeeding arguments as process IDs (the default).

Interpret the succeeding arguments as usernames or UIDs.

Display version information and exit.

Display help text and exit.

Files

to map user names to user IDs

Notes

Users other than the superuser may only alter the priority of processes they own. Furthermore, an unprivileged user can only increase the «nice value» (i.e., choose a lower priority) and such changes are irreversible unless (since Linux 2.6.12) the user has a suitable «nice» resource limit (see ulimit(1p) and getrlimit(2)).

The superuser may alter the priority of any process and set the priority to any value in the range -20 to 19. Useful priorities are: 19 (the affected processes will run only when nothing else in the system wants to), 0 (the «base» scheduling priority), anything negative (to make things go very fast).

History

The renice command appeared in 4.0BSD.

Examples

The following command would change the priority of the processes with PIDs 987 and 32, plus all processes owned by the users daemon and root:

renice +1 987 -u daemon root -p 32

See Also

Reporting Bugs

Availability

The renice command is part of the util-linux package which can be downloaded from Linux Kernel Archive.

Источник

Изучаем команды Linux: nice и renice

1. Введение

Возможность для пользователя задавать значение приоритета его собственных процессов определяет ваше отношение к другим пользователям системы. Даете ли вы им возможность использовать поцессор или просто злоупотребляете системными ресурсами без достаточных оснований? В этой статье вы узнаете, как управлять процессами в плане потребления ими ресурсов процессора и изменения приоритета ваших процессов, используя команды nice и renice. Мы начнем с азов теории, поговорим о том, что такое процесс, планирование, как создать дочерний процесс. Затем мы перейдем к команде nice и узнаем, как изменить значение приоритета процесса.

2. Что такое процесс

Простыми словами процесс — это соглашение об именовании, используемое в Linux для обозначения роли запущенной программы. Процесс — это набор правил, которым руководствуется данная программа при использовании выделенного процессорного времени, памяти и ресурсов ввода/вывода. Каждый процесс, запущенный в системе Linux, имеет свой ID (PID), по которому его можно отслеживать.

Ядро Linux позволяет собирать различную информацию о каждом процессе, которая включает, но не ограничивается:

— статус процесса ( работает, спит, зомби или остановлен)
— приоритет выполнения процесса
— информация об используемых ресурсах
— владелец процесса
— сетевые порты и файлы, открытые процессом
— и так далее.

Читайте также:  Как запустить режим восстановления windows при включении

Итак, теперь мы кое-что знаем процессах и можем продвинуться дальше и создать какой-нибудь процесс. Чтобы сделать это, просто откройте терминал и выполните команду yes в фоне, перенаправив ее вывод в /dev/null:

После это воспользуемся командой ps -l, чтобы извлечь информацию о нашем процессе:

Из этой таблицы мы можем узнать немало интересного:

F — FLAG: процесс запущен без привилегий суперпользователя. В противном случае мы могли бы увидеть число 4 или сумму 1 и 4. Подробности можно узнать, посмотрев man-страницу ps.
S — STATE: процесс в настоящее время работает.
UID — ID пользователя, инициализировавшего процесс. UID на самом деле является алиасом EUID (Effective User ID)
PID — ID процесса нашей команды yes 5997.
PPID — Parent Process ID. Это ID родительского для нашей команды yes процесса. В нашем случае это bash с PID 5830.
C — загрузка процессора, целое число, выражается в %.
PRI — Приоритет процесса. Большее значение означает меньший приоритет.
NI — Значение Nice, которое находится в диапазоне от -20 до 19. Большее значение означает меньший приоритет.

2.1. Планирование процессов

Если вы не хотите слишком глубоко вникать в детали планирования и приоритета процессов, то можете пропустить этот раздел. Здесь мы сосредоточимся на описании процессов в Linux и попытаемся обобщить некоторые моменты, так как подробное описание их может занять множество страниц.
С нашей точки зрения необходимо понимать, что принцип работы планировщика Linux (для ядра версии >= 2.6) вытесняющий. Под этим понимается способность ядра выбирать среди всех заданий то, которое имеет наивысший приоритет. Далее, ядро делит списки приоритета на задачи реального времени и пользовательские задания, ранжирующиеся от 1 — 100 и 101 — 140 соответственно.
Далее, ядро Linux выделяет задачам с более высоким приоритетом больший квант времени, а задачам с меньшим приоритетам — меньший квант времени, который в среднем составляет 200 и 10 мс соответственно. Другими словами, каждое задание допускается к выполнению только, если у него остается какая-либо часть времени. Поэтому меньший отрезок времени для выполнения означает, что процесс получает меньше времени в очереди выполнения и, соответственно, получает меньше ресурсов. Когда отрезок времени процесса заканчивается, он помещается в очередь выполнения с истекшим временем, затем его приоритет пересчитывается, и он снова помещается в активную очередь выполнения. Эта зависимость иллюстрируется приведенной здесь диаграммой. Важно помнить, что обе очереди выполнения содержат списки задач, отсортированных по их приоритету.

2.2. Жизненный цикл процесса

Основной принцип управления процессами в Linux включает две важные операции, создающие новый процесс. Операция, при которой процесс копирует себя, и тем самым создает новый процесс с уникальным ID, осуществляется при помощи вызова fork(). За ней часто следует операция exec(), запускающая новую программу. Первый процесс, создающийся при загрузке системы, называется init, он всегда получает PID 1. Все остальные процессы считаются дочерними по отношению к процессу init. В нормальных условиях перед завершением дочернего процесса требуется, чтобы родительский процесс послал ему значение exit. При успешном завершении процесса он отправляет родительскому процессу значение 0. Если по каким-либо причинам дочерний процесс пережил родительский, init отмечает его как не имеющий родителей.

3. Использование команды nice

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

Чтобы запустить процесс со значением nice, отличным от 10, можно использовать ключ -n.

Чтобы установить значение nice ниже нуля, требуются права суперпользователя. В противном случае будет установлено значение 0. Ниже мы пробуем задать значение nice -1 без прав root:

Поэтому, чтобы задать значение nice меньше 0, необходимо запускать программу как root, или использовать sudo.

4. Использование команды renice

В предыдущем разделе мы узнали, как запускать программу с заданным значением nice. Теперь мы попробуем изменить значение nice у запущенной программы с помощью команды renice. Итак, у нас есть работающая программа yes со значением nice 10:

Чтобы изменить его значение, мы можем использовать команду renice со значением nice и PID процесса. Давайте изменим значение nice на 15:

Читайте также:  Dtb файл linux что это

Согласно правилам, обычный пользователь может только увеличивать значение nice (уменьшать приоритет) любого процесса. Если попробовать изменить значение nice с 15 до 10, мы получим следующее сообщение об ошибке:

Также, команда renice позволяет суперпользователю изменять значение nice процессов любого пользователя. Это делается с помощью ключа -u. Следующая команда изменяет значение приоритета всех процессов пользователя на -19:

5. Заключение

Команда nice может быть удобным инструментом и она очень проста в использовании. Пожалуйста, отметьте, что для изменения значения приоритета также может использоваться команда top.

Источник

Linux renice command

On Unix-like operating systems, the renice command modifies the priority of running processes. It is similar to the nice command, but is used for processes that are already running.

This page describes the Linux version of renice.

Description

renice alters the scheduling priority of one or more running processes.

A higher value of priority actually makes the process lower priority; it means the process demands fewer system resources (and therefore is a «nicer» process). A lower priority value means the process demands more resources, possibly denying those resources to processes that are «nicer».

The priority value of any given process can vary from -20 (highest priority, least «nice») to 20 (lowest priority, «nicest»). The default priority of new processes, by default, is 0.

renice‘ing a process group causes all processes in the process group to have their scheduling priority altered.

renice‘ing a user causes all processes owned by the user to have their scheduling priority altered.

By default, the processes to be affected are specified by their process ID’s.

Syntax

Options

-n, —priority The scheduling priority of the process, process group, or user.
-g, —pgrp Force who parameters to be interpreted as process group ID’s.
-u, —user Force the who parameters to be interpreted as user names.
-p, —pid Resets the who interpretation to be (the default) process ID’s.
-v, —version Display version information, and exit.
-h, —help Display a help message, and exit.

Priority

Users other than the superuser may only alter the priority of processes they own, and can only monotonically increase their «nice value» in the range 0 to PRIO_MAX (20). The superuser may alter the priority of any process and set the priority to any value in the range PRIO_MIN (-20) to PRIO_MAX.

Useful settings for priority are:

  • 20: the affected processes run only when nothing else in the system needs the resources.
  • 0: the default.
  • any negative value: makes things go very fast, at the expense of other processes.

Examples

renice +1 987 -u daemon root -p 32

Change the priority of process IDs 987 and 32, and all processes owned by users daemon and root, to be one greater (+1, one increment «nicer») than its current value.

kill — Send a signal to a process, affecting its behavior or killing it.
nice — Invoke a command with an altered scheduling priority.
ps — Report the status of a process or processes.
top — Display a sortable, continually-updated list of processes.

Источник

Использование команд «Nice» и «Renice» в Linux

Системы Linux могут запускать много процессов (заданий) одновременно. Даже если процессор имеет несколько процессоров или ядер, число процессов обычно намного превышает количество доступных ядер. Задача ядра Linux — распределять доступные циклы ЦП среди активных процессов.

Используйте команды nice и renice, чтобы заставить ядро ​​перераспределить циклы процессора для конкретных приложений.

Используйте Nice, чтобы получить приоритеты прямо

По умолчанию все процессы считаются одинаково срочными и имеют одинаковое количество процессорного времени. Linux связывает параметр приоритета с каждым заданием, которое может быть установлено или изменено пользователем. Затем ядро ​​Linux резервирует процессорное время для каждого процесса на основе его относительного значения приоритета.

Параметр nice используется для этой цели. Он варьируется от минус 20 до плюс 19 и может принимать только целые значения. Значение минус 20 представляет самый высокий уровень приоритета, тогда как 19 обозначает самый низкий. Тот факт, что самый высокий уровень приоритета обозначен самым отрицательным числом, несколько противоречит интуиции. Однако работа с более низким приоритетом считается «более приятной», поскольку она позволяет другим процессам использовать большую долю процессорного времени.

Читайте также:  Windows directory statistics portable

Источник

Util-linux

Официальный адрес пакета

Содержимое Util-linux

Пакет Util-linux содержит ряд различных утилит. Некоторые из наиболее используемых утилит монтируют. размонтируют и обеспечивают работу с дисками, открывают порты tty и отправляют сообщения ядру.

Устанавливаемые программы: agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, kill, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize (ссылка на rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (ссылка на rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (ссылка на swapon), swapon, test.bash, test.tcsh, tunelp, ul, umount, vidmode (ссылка на rdev), whereis и write

Краткие описания

agetty открывает порт tty, запрашивает имя пользователя и запускает программу login.

arch возвращает архитектуру машины.

blockdev позволяет вызвать ioctls блочного устройства из командной строки.

cal отображает простой календарь.

cfdisk используется для монипуляций с таблицей разделов указанного устройства.

chkdupexe ищет дубликаты исполняемых файлов.

col фильтрует перевернутые строки, поступающие со ввода.

colcrt используется для фильтрации вывода nroff для терминалов CRT.

colrm отфильтровывает указанные колонки.

column форматирует указанный файл в несколько колонок.

ctrlaltdel устанавливает функцию для комбинации клавиш Ctrl+Alt+Del для аппаратного или программного сброса.

cytune используется для настройки параметров драйверов последовательного порта для карт Cyclades.

ddate выдает Discordian дату или конвертирует указанную дату по Григорианскому календарю в Discordian дату.

dmesg выводит загрузочные сообщения ядра.

elvtune может использоваться для настройки работы и взаимодействия блочных устройств.

fdformat — низкоуровневое форматирование дискеты.

fdisk может использоваться для манипуляций таблицы разделов указанного устройства.

fsck.cramfs проводит проверку целостности файловой системы Cramfs на указанном устройстве.

fsck.minix проводит проверку целостности файловой системы Minix на указанном устройстве.

getopt оанализирует параметры командной строки.

hexdump отображает заданный файл в шестнадцатиричном или другом указанном формате.

hwclock используется для чтения или установки аппаратных часов системы (также называемых RTC- или BIOS-часами).

ipcrm удаляет указанный ресурс IPC.

ipcs отображает статус IPC.

isosize возвращает размер файловой системы iso9660.

kill прерывает заданные процессы.

line копирует строку.

logger добавляет указанное сообщение в системный лог.

look выводит строки, начинающиеся с указанной строки.

losetup используется для установки и управления loop устройств.

mcookie генерирует «магические» ключи для xauth.

mkfs используется длоя создания файловой системы на устройстве (обычно разделе жесткого диска).

mkfs.bfs создает файловую систему SCO bfs.

mkfs.cramfs создает файловую систему cramfs.

mkfs.minix создает файловую систему Minix.

mkswap инициализирует указанной устройство или файл для использования в качестве свопа.

more — фильтр для постраничного вывода текста. Но less намного лучше.

mount присоединяет файловую систему на указанном устройстве к указанной директории в дереве системных файлов.

namei показывает символические ссылки в указанных путях.

pg постранично отобрахает текстовый файл.

pivot_root телает указанную файловую системы корневой для текущих прооцессов.

ramsize может использоваться для установки размера RAM-диска в загрузочной карте.

rdev может использоваться для запроса и установки корневого устройства и других параметров карты загрузки.

readprofile считывает профильную информацию ядра.

rename переименовывает указанные файлы, заменяет указанную строку на другую.

renice используется для изменения проритета выполнения работающего процесса.

rev переворачивает строки в указанном файле.

rootflags может использоваться для установки или снятия параметров корневой файловой системы в карте загрузки.

script создает скрипт терминальной сессии.

setfdprm устанавливает пользовательские параметры дискеты.

setsid запускает указанную программу в новой сессии.

setterm используется для установки аттрибутов терминала.

sfdisk мнипулирует таблицами разделов дисков.

swapdev может использоваться для установки своба в карте загрузки.

swapoff отключает устройства или файлы свопа.

swapon подключает устройства или файлы свопа.

tunelp используется для настройки параметров LP устройств.

ul — фильтр для перевода знаков подчеркивания в escape-последовательности подчеркивания для текущего терминала.

umount отключает файловую систему от дерева системных файлов.

vidmode может использоваться для установки видеорежима в карте загрузки.

whereis возвращает местоположение бинарников, исходников или man-страниц для указанной команды.

write посылает сообщение указанному пользователю в том случае, если пользователь не отключил эту возможность.

Зависимости установки Util-linux

Util-linux зависит от: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.

Источник

Оцените статью