Można zmienić tą uruchomionego procesu, aby nadać jej bardziej lub mniej priorytet (tzw „nice value”). Zauważ, że skala priorytetów UNIX jest nieco sprzeczna z intuicją: wartości ujemne oznaczają, że proces jest faworyzowany w stosunku do równoczesnych procesów, tj. Ma „wyższy” priorytet.
Możesz zatem spróbować spowolnić proces, biorąc pod uwagę jego PID poprzez:
# lower priority of a process
renice +1 "PID"
Za każdym razem, gdy to uruchomisz, proces „ładna wartość” jest zwiększany o 1; możesz użyć wartości całkowitych innych niż +1oczywiście.
Polecenie nice pozwala rozpocząć proces z korektą wartości nice +10 (zmień to za pomocą opcji -n). Na przykład:
# start a CPU-intensive task with low priority
nice ./cpu-hog
Jednak „ładna wartość” wpływa tylko na to, jak bardzo harmonogram preferuje uruchomienie określonego procesu w porównaniu z innymi w systemie: jeśli komputer jest w zasadzie na biegu jałowym, podniesienie „ładnej wartości” jednego procesu nie powstrzyma tego procesu przed pobraniem 100% PROCESOR. Cytuję na stronie getpriority (2) : (Podkreślenie dodane przeze mnie.)
Stopień, w jakim ich względna niezła wartość wpływa na planowanie procesów, jest różna w różnych systemach Unix, a w Linuksie w zależności od wersji jądra. Począwszy od jądra 2.6.23, Linux przyjął algorytm, który powoduje, że względne różnice w ładnych wartościach mają znacznie silniejszy efekt. Powoduje to, że bardzo niskie wartości ładne (+19) naprawdę zapewniają procesorowi niewielki proces, ilekroć w systemie występuje inne
_większące priorytetowe obciążenie ._
Powodem tego jest sposób, w jaki procesy są uruchamiane na jądrze typu UNIX: za każdym razem, gdy jądro decyduje się na uruchomienie procesu, proces ten ma pełną kontrolę nad rdzeniem procesora przez określony (stały i krótki) okres czasu. „Dobra wartość” może wpływać na to, jak często program planujący jądro chce nadać przedział czasowy procesowi, ale nie można zmienić faktu, że po zaplanowaniu proces działa nieprzerwanie przez ustalony czas.
Dlatego, poza spowolnieniem procesora, nie ma sposobu, aby proces działał wolniej, jeśli w systemie nie ma innych procesów, które mogłyby walczyć o dostęp do procesora.