nice & renice
使用 nice 命令的-n 参数允许用户以一个指定的 niceness 值运行特定程序。例如,要执行“sort input.txt > output.txt”
这个会执行较长时间的排序命令,可以通过下面的命令降低它的优先级,使它不会过度地影响系统的运行:
% nice -n 10 sort input.txt > output.txt
系统中每个进程都有设定的优先级,也叫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
然后继续其它的正常工作。
阅读(1432) | 评论(0) | 转发(0) |