进程的优先级分配:nice, renice

进程的优先级分配:nice, renice
来源: ChinaUnix博客   作者: ChinaUnix博客   发布时间:2008-01-01


                                                                                                系统中每个进程都有设定的优先级,也叫nice值,能够从-20(最高优先级)到19(最低优先级)。在没有明确指定的情况下,每个进程的缺省优先级都是0(基本级)。高优先级的进程(比较低的nice值,直到-20)比其他的低优先级的进程(比较高的nice值)在CPU周期的配给上受到较多的眷顾,从而他们会得到更多的处理器周期。普通用户只能在0到19之间的值为他们的进程定级;root能够为他的任意进程配置任意级别。

renice
当一个或多个进程占用过多的系统资源的时候,我们能够降低这些进程的级别,而不是把他们停掉。在此,renice就派上用场了,语法如下:
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
其中,priority是优先级的值,pid是进程ID(多个进程的话能够用-p选项),pgrp是进程的组ID(同-g选项一起使用),user(多于一个的话用-u)是进程任何者的用户名。
举个例子,您有一个PID为785的运行着的进程,正在执行一个长时间的科学计算,而您此时打算玩一个游戏,需要空闲的系统资源,在这种情况下您这样作:
$ renice +15 785

于是,尽管执行计算的时间会变得更长,但是他不再占用其他进程所需的CPU时间。

假如您是系统管理员,发现一个用户跑了很多进程,正在消耗过多的系统资源,那么您能够用一个命令改变这个用户的进程的优先级:
# renice +20 -u birgit
这个命令发出之后,birgit的任何进程都得到了最低级别,其他用户的进程就不会被妨碍了。

nice
现在,您知道了进程的优先级是能够改变的,可能还会想知道什么命令能够带着设定的优先级来启动命令,这里您要用到nice命令,这种情况下您必须把命令作为nice的选项给出,-n选项配置优先级值,缺省时nice会把此值设为10。例如,您想得到系统安装盘中的ISO映像:
$ dd if=/dev/cdrom of=~/abc.iso
对一些带有标准IDE设备的系统来说,大型数据的拷贝会占用很多系统资源,此时为了避免拷贝进程阻碍其他进程,您在启动他的时候给他低优先级:
$ nice -n 19 dd if=/dev/cdrom of=~/abc.iso
然后继续其他的正常工作。

你可能感兴趣的:(游戏,工作,配置管理,ide)