Niceness and priority processes on Linux system
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.
Hugo
Updated on June 13, 2022Comments
-
Hugo almost 2 years
I am looking for a way to modify a process' priority through command line. I found the builtin (bash)
nice
and the commandrenice
which allow to modify the niceness of the process, but not the actual priority which is calculated by the kernel.Is there a command which allows to set the priority? (Or am I confused between niceness and priority?)
-
ctrl-alt-delor over 10 yearsNo you are not confused. In resent Linux there are other schedulers. @Turbo J described the default/normal/transnational scheduler. There are some other schedulers: Normal, Batch, Round-robin, FIFO. And also i/o: Normal, idle, best-effort, Real-time. Batch and idle are lower priority than normal, the others are above normal, be very careful with these (don't touch them).
-
Geremia almost 8 yearsWhat about
ionice
?