Процеси в linux

Установка пріоритетів для процесів: nice, renice

Всі процеси в системі працюють з певними пріоритетами, також званими «значеннями nice», які можуть змінюватися від -20 (найвищий пріоритет) до 19 (найменший пріоритет). Якщо воно не визначено, кожен процес буде запускатися з пріоритетом за умовчанням - 0 ( «базовим» пріоритетом розподілу машинного часу). Для процесів з більш високим пріоритетом (меншим значенням nice, аж до -20) буде виділено більше системних ресурсів в порівнянні з іншими процесами з меншим пріоритетом (до 19), надаючи їм більше число циклів процесора. Всі користувачі, крім рута, можуть тільки знижувати пріоритет своїх власних процесів в діапазоні від 0 до 19. Суперкористувач (root) для будь-якого процесу може встановити будь-яке значення пріоритету.

Якщо один або кілька процесів використовують занадто багато ресурсів системи, ви можете змінити їх пріоритети замість того, щоб вбивати їх. Для цього використовується команда renice. Її синтаксис:

renice пріоритет [[-p] pid. ] [[-g] pgrp. ] [[-u] користувач. ]

Де пріоритет - значення пріоритету, pid - ідентифікатор процесу (використовуйте опцію -p для вказівки кількох процесів), pgrp - ідентифікатор групи процесу (якщо їх декілька, використовуйте -g) і user - ім'я користувача, що володіє процесом (-u для кількох користувачів) .

Давайте уявимо, що ви запустили процес з PID 785, який виконує тривалі наукові обчислення, а поки він працює, ви хотіли б трохи розслабитися і пограти, для чого вам потрібно звільнити трохи системних ресурсів. Тоді ви можете набрати:

У цьому випадку виконання вашого процесу потенційно може зайняти більше часу, однак він не буде забирати процесорний час у інших процесів.

Якщо ви системний адміністратор і помітили, що якийсь користувач запустив занадто багато процесів, і вони використовують занадто багато системних ресурсів, ви можете змінити пріоритет процесів цього користувача за допомогою однієї команди:

# Renice +20 -u peter

Після все процеси користувача peter отримають найменший пріоритет і не будуть ускладнювати роботу процесів інших користувачів.

Тепер, коли ви знаєте про те, що можна змінювати пріоритети процесів, вам може знадобитися запустити програму з певним пріоритетом. Для цього використовуйте команду nice.

В цьому випадку вам необхідно вказати свою команду в якості опції для nice. Опція -n використовується для установки значення пріоритету. За замовчуванням nice встановлює пріоритет 10.

Наприклад, вам потрібно створити ISO-образ інсталяційного CD-ROM'а з Mandrakelinux:

$ Dd if = / dev / cdrom of =

У деяких системах зі стандартним IDE CD-ROM процес копіювання великих обсягів інформації може захопити занадто багато ресурсів системи. Щоб запобігти блокуванню інших процесів через копіювання, ви можете запустити процес зі зниженим пріоритетом за допомогою цієї команди:

$ Nice -n 19 dd if = / dev / cdrom of =

Схожі статті