Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4733972
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2008-11-11 13:38:58

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
然后继续其它的正常工作。

阅读(1367) | 评论(0) | 转发(0) |
0

上一篇:子目录大小

下一篇:/boot/grub/menu.lst详解

给主人留下些什么吧!~~