Niceness and priority processes on Linux system

15,013

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.

Share:
15,013
Hugo
Author by

Hugo

Updated on June 13, 2022

Comments

  • Hugo
    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 command renice 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
    ctrl-alt-delor over 10 years
    No 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
    Geremia almost 8 years
    What about ionice?