您的位置:首页 > 运维架构 > Linux

Linux 系统 svn批量新建钩子脚本和解决不能同步中文名文件

2013-04-18 09:52 323 查看
 6、解决CPU占用的惩罚机制nice和renice

  指定和修改命令的优先级。

  系统中运行的每个进程都有一个优先级,我们可以用ps命令看到,这个优先级为PRI,PRI的值越小,优先级越高,能占用更多的CPU时间片。系统默认的PRI为60,我们可以通过nice命令和renice命令来改变一个进程的优先级,从而控制进程对CPU时间片的占用。

  任何一个用户都可以使用nice命令来使他的进程以低于系统默认的pri运行。但是只有root用户才可以使进程以高于默认的pri运行。

  我们先来看一下nice命令的使用方法:

#nice –n -5 vmstat 2 10 >vmstat.out

# ps -el

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

200001 A 0 704738 1523728 0 55 15 aee1400 544 f100009e63c23e30 pts/1 0:00 vmstat
  指定程序以nice值-5开始运行。程序开始后,nice的值为15,PRI的值为55。

  nice命令可以指定的范围为-20 (最高优先级)到 20 (最低优先级)。在AIX5.3中,默认的nice为20。

# vmstat 2 10 >vmstat.out

# ps -el

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

200001 A 0 704740 1523728 0 60 20 32ec6400 472 f100009e63c23e30 pts/1 0:00 vmstat64
  可以看到默认的情况下,系统使用的nice=20,pri=60 。

  实际上,在使用nice指定的时候,我们也可以使用超出闭区间[-20,20]的值,比如:

nice –n -33 vmstat 2 10 >vmstat.out

# ps -el

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
200001 A 0 319652 1523728 0 40 0 82ef0400 544 f100009e63c23e30 pts/1 0:00 vmstat64

  上例中,我们指定的nice小于-20,得到最高的优先级(pri=40)。反之,如果我们指定nice的值超过20,比如nice=21,我们将得到最低的优先级值pri=100。

  renice不能在具有固定优先级的进程上使用。非root用户可以在一个或多个运行进程的nice值上加一个指定的值,但不能从中减去指定的值。也就是只能降低进程的优先级,而不能增加优先级。

  renice -n -10 pidnumber ,将指定的进程nice值减小10。

  renice -n +5 pidnumber ,将指定的进程nice值增加5。

  根据nice值的不同取值,这里renice的值可以取值的范围是闭区间[-40,40 ]。为什么取值范围是这个呢?我们可以这样来理解,通过ps –l命令,我们可以看到NI的取值范围是闭区间[0,40],我们使用renice需要改变的也就是整个值,考虑两个极端的情况,假如现在为0,我们要把它改到40,就必须得renice –n 40,如果现在是40,我们要把它改为0,则renice的值就得是-40了。

  当然,跟nice一样,在这里renice的值在命中使用的时候也可以超出这个闭区间,不会报错,但有效的结果只落在这个闭区间内。

# ps l 1630282

FSUID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD

200001 A 0 1630282 680062 0 100 40 413e8400 472 484 EVENT pts/1 0:00 v

# renice -n -30 1630282

# ps l 1630282

FSUID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD

200001 A 0 1630282 680062 0 50 10 413e8400 472 484 EVENT pts/1 0:00 v
  我们可以总结一下,pri值的取值公式大概如下:

  优先级值(PRI)= 基本优先级(60)+nice损失 + 基于最近CPU使用情况的CPU损失

  总的来说nice值越小,进程的优先级越高,能分配到更多的cpu时间片。反之,也成立。

7、小结

  对于系统cpu的监控,建议:

  1)使用vmstat进行分析

  2)sar –P ALL 1 10 分析,多个cpu间的负载是否平衡

  3)ps aux 查看

  4)tprof查看更详细的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐