Toolserver:Nice

From mediawiki.org

This page was moved from the Toolserver wiki.
Toolserver has been replaced by Toolforge. As such, the instructions here may no longer work, but may still be of historical interest.
Please help by updating examples, links, template links, etc. If a page is still relevant, move it to a normal title and leave a redirect.

This page is obsolete: There is no longer any need to worry about nice level when submitting jobs using the job scheduling system. The previous content of this page is preserved for historical interest.


Note: The information on this page applies to Linux servers. For Solaris (e.g. willow), see batch project.

nice tells the system how much CPU time to devote to that process when there is a competition for resources. This is useful in multiuser environments where there are limited resources. Long-running processes (like bots) should usually have a high niceness level (i.e. low priority) like 10. The default level is 0 (which is the highest priority available to non-privileged users). The highest nice level is 19. Your processes may be reniced forcefully if necessary.

If the CPU can deliver more resources than the process is requesting, then even the lowest-priority process can eat 100% CPU. It's only when multiple processes are vying for resources and CPU can't deliver as much as the processes are requesting that nice levels become relevant.

Use with cron and/or phoenix[edit]

Recall that processes inherit the nice level of their parent. If using cron, one might try to do

*/5 * * * * /usr/local/bin/phoenix nice -n 10 python /home/user/program.py >/dev/null

But that is wrong and your program will not work properly. Instead, set the nice level on phoenix and let the spawned process inherit it:

*/5 * * * * nice -n 10 /usr/local/bin/phoenix python /home/user/program.py >/dev/null

This of course applies if you're not using cron:

nice -n 10 phoenix python /home/user/program.py

renice[edit]

renice can be used to increase the nice level of already-running processes (you cannot reduce nice levels unless you're root):

renice 10 -p 1234

If necessary, you can renice all processes belonging to you:

renice 11 -u $USER

Viewing nice levels[edit]

You can view nice levels in the column "NI" with

top -c -u $USER

Or:

ps l

Or if you have processes with no TTY, use

ps xl

Category:Commands