Ви можете відновити запущений процес, щоб надати йому більш-менш пріоритетний характер (так зване "приємне значення"). Зауважте, що шкала пріоритетності UNIX дещо протиінтуїтивна: негативні значення означають, що процес надається перевагу над паралельними процесами, тобто має пріоритет "більше".
Таким чином, ви можете спробувати "уповільнити" ваш процес, враховуючи його PID через:
# lower priority of a process
renice +1 "PID"
Кожен раз, коли ви запускаєте це, процес "приємне значення" збільшується на 1; Ви можете використовувати цілі значення, крім +1
звичайного.
Команда nice дозволяє запустити процес з коригуванням значення +10 nice (змінити це за допомогою параметра -n
). Наприклад:
# start a CPU-intensive task with low priority
nice ./cpu-hog
Однак "приємне значення" впливає лише на те, наскільки планувальник надає перевагу запуску певного процесу над іншими в системі: якщо ваш комп’ютер в основному працює на холостому ході, підвищення "приємного значення" одного єдиного процесу не зупинить цей процес на 100% ЦП. Я цитую зі сторінки manpriority (2) manpage : (наголос додав я.)
Ступінь, в якій їх відносне приємне значення впливає на планування процесів, залежить від систем Unix, а в Linux - для версій ядра. Починаючи з ядра 2.6.23, Linux прийняв алгоритм, який спричиняє набагато сильніший вплив відносних відмінностей в хороших значеннях. Це призводить до дуже низьких приємних значень (+19), щоб по-справжньому забезпечити мало процесора процесу, коли в системі є будь-яке інше
пріоритетне навантаження._
Причина цього полягає в тому, як процеси запускаються на ядрі, схожому на UNIX: кожен раз, коли ядро вирішує запустити процес, цей процес має повний контроль над ядром процесора протягом певного (фіксованого та короткого) проміжку часу. "Приємне значення" може впливати на те, як часто планувальник ядра готовий надати часовий проміжок часу, але ви не можете змінити той факт, що після запланованого процесу процес триває безперешкодно протягом певного часу.
Тому, якщо уповільнити процесор, немає способу зробити процес повільніше, якщо в системі немає інших процесів, які можуть претендувати на доступ до процесора.