Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1309463
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: LINUX

2008-02-23 01:40:50

系统中每个进程都有设定的优先级,也叫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

然后继续其它的正常工作。
阅读(1178) | 评论(0) | 转发(0) |
0

上一篇:gdb的基本用法

下一篇:procps系列

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