2.9.6.2 Изменение приоритета процесса
Скачать документ Изменение приоритетов процессов с помощью терминала
Изменение приоритетов процессов с помощью графических средств
Изменение приоритетов процессов с помощью терминала
Утилита nice — программа, предназначенная для запуска процессов с изменённым приоритетом nice. Приоритет nice (целое число) процесса используется планировщиком процессов ядра ОС при распределении процессорного времени между процессами
Приоритет nice — число, указывающее планировщику процессов ядра ОС приоритет, который пользователь хотел бы назначить процессу.
Утилита nice, запущенная без аргументов, выводит приоритет nice, унаследованный от родительского процесса. nice принимает аргумент «смещение» в диапазоне от -20 (наивысший приоритет) до +19 (низший приоритет). Если указать смещение и путь к исполняемому файлу, утилита nice получит приоритет своего процесса, изменит его на указанное смещение и использует системный вызов семейства exec() для замещения кода своего процесса кодом из указанного исполняемого файла. Команда nice сделает то же, но сначала выполнит системный вызов семейства fork() для запуска дочернего процесса (англ. sub-shell). Если смещение не указано, будет использовано смещение +10. Привилегированный пользователь (root) может указать отрицательное смещение.
Планировщик процессов ядра ОС Linux поддерживает приоритеты от 0 (реальное время) до 139 включительно. Приоритеты -20…+19 утилиты или команды nice соответствуют приоритетам 100…139 планировщика процессов. Другие приоритеты планировщика процессов можно установить командой chrt из пакета util-linux.
Посмотреть приоритет процессов можно например с помощью утилиты top, для этого в терминале нужно выполнить:
top
Для просмотра приоритета уже запущенного конкретного процесса существует команда:
ps -o pid,comm,nice -C [name]
Например:
ps -o pid,comm,nice -C top PID COMMAND NI 21244 top 0
nice
Синтаксис:
nice [-n смещение] [--adjustment=смещение] [команда [аргумент…]]
Параметры:
-n <смещение> --adjustment=<смещение>
Установить приоритет nice, равный сумме текущего приоритета nice и указанного числа «смещение». Если этот аргумент не указан, будет использовано число 10.
Для примера зададим приоритет 15 при старте процесса top:
nice -n 15 top
Чтобы установить значение nice ниже нуля, требуются права суперпользователя. В противном случае будет установлено значение 0. Попробуем задать значение nice -1 без прав root:
nice -n -1 yes > /dev/null &nice: cannot set niceness: Permission denied
Поэтому, чтобы задать значение nice меньше 0, необходимо запускать программу как root, или использовать sudo.
renice
Для того, чтобы изменить приоритет у существующего процесса (т.е. такого процесса, который ранее был уже запущен), необходимо воспользоваться командой:
renice [значение приоритета] -p [id процесса]
У запущенной программы с помощью команды renice можно изменить назначенный приоритет. Предположим, что есть работающая программа yes со значением nice 10. Чтобы изменить его значение, можно использовать команду renice со значением nice и PID процесса. Изменим значение nice на 15:
renice -n 15 -p 21349 21349 (process ID) old priority 0, new priority 15
Согласно правилам, обычный пользователь может только увеличивать значение nice (уменьшать приоритет) любого процесса. Если попробовать изменить значение nice с 15 до 10, мы получим следующее сообщение об ошибке:
renice -n 10 -p 21349 renice: failed to set priority for 5645 (process ID): Permission denied
Также, команда renice позволяет суперпользователю изменять значение nice процессов любого пользователя. Это делается с помощью ключа -u. Следующая команда изменяет значение приоритета всех процессов пользователя на -19:
renice -n -19 -u lubos 1000 (user ID) old priority 0, new priority -19
htop
htop представляет собой продвинутый монитор процессов, аналог top. В отличие от top, htop показывает все процессы в системе. Также показывает время непрерывной работы, использование процессоров и памяти. htop часто применяется в тех случаях, когда информации даваемой утилитой top недостаточно, например при поиске утечек памяти в процессах. htop написан на языке Си и использует для отображения библиотеку Ncurses.
Устанавливается командой:
dnf install htop
На нижней панели интерфейса отображены основные действия. Переключаться межуд процессами можно кнопками «Вверх» и «Вниз». При нажатии F7 и F8 на выбранном процессе изменяется приоритет вниз и вверх соответственно.
Изменение приоритетов процессов с помощью графических средств
Изменять приоритеты процессов можно с помощью утилиты Системный монитор.
Для Cinnamon необходимо установить отдельно:
dnf install gnome-system-monitor.x86_64
Перейдите на вкладку Процессы. Выберите процесс, щелкните правой кнопкой мыши по нему и выберите в выпадающем меню пункт Изменить приоритет. Выберите нужный приоритет и выберите его.
Дата последнего изменения: 03.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.