I am looking for a way to modify a process\' priority through command line.
I found the builtin (bash) nice
and the command renice
which allow to m
The priority of a process in linux is dynamic: The longer it runs, the lower its priority will be. A process runs when its actually using the CPU - most processes on a typical Linux box just wait for I/O and thus do not count as running.
The priority is taken into account when there are more processes running than CPU cores available: Highest priority wins. But as the winning process looses its proirity over time, other processes will take over the CPU at some point.
nice
and renice
will add/remove some "points" from priority. A process which has a higher nice
value will get lesser CPU time. Root can also set a negative nice
value - the process gets more CPU time.
Example: There are two processes (1 and 2) calculating the halting problem and one CPU core in the system. Default is nice 0
, so both processes get about half of the CPU time each. Now lets renice process 1 to value 10. Result: Process 2 gets a significant higher amount of cpu time as process 1.
Note: In modern desktops there is plenty CPU time available - they are fast these days. Unfortunately HDDs are still relativeley slow on random I/O, so even a nice process can generate enough I/O traffic to significantly slow down a system.