几个进程调度器[转贴]

看到linuxsir上有人问题到如何强制emerge 时CPU的占用率,看到有人推荐cpulimit, 然后google到这篇文章,觉得不错就转了, sudo cpulimit -e cc1plus -l 50

版权声明: 允许非商业性转载,但转载时必须标明原作者 fcicq、原始链接 http://www.fcicq.net/wp/?p=515 及本声明。

nice和renice相信一般的linux管理员都会使用.
他们能够调整程序运行的优先级.

当然顺便提一句.
在 2.6.23 进入 mainline 的 CFS(Completely Fair Scheduler)
对优先级做了如下的规定:
进程的nice每提高1,则增加10%的CPU使用率,反之减少10%.
并与HZ的取值无关(原先的调度器受HZ的影响较大).

cpulimit和ionice相对知道的人就少多了
不过由于全新调度器的出现,手工调整的机会就更少了.
这些调整将会由核心自动进行.

不过偶自己认为,在IO上的改进对性能的提升帮助会更大.
所以,readahead,big io command,Large Blocksize Support等出现了
(虽然它们根本不稳定)

不跑题了,开始说.

cpulimit - limits the CPU usage of a process
例子:
cpulimit -p PID -l 30
cpulimit -e firefox -l 30
限制进程使用30%的CPU,注意的是如果是多核系统的话,范围是0-100*n.
不过这东西根本就不是用来对付firefox假死的.
继续BS那些写出垃圾javascript的同学.

ionice - get/set program io scheduling class and priority
重要的参数:
-c The scheduling class. 1 for real time, 2 for best-effort, 3 for idle.
-n The scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
(-c,-n 相当于io的优先级)
-p 就是 PID…:) 如果写了就改变,没写就像 nice 一样运行

例子
ionice -c2 -n0 cp xxx yyy
(提高cp的io优先级)

注意的是ionice仅用于 >=2.6.13,
且需要CFQ IO scheduler支持(不过这是默认的).

差点忘了告诉你们怎么装了.

用gentoo的同学们
emerge cpulimit schedutils
就能得到这两个小工具了.

参考资料
man pages: cpulimit(8),ionice(1)

友情提示: 请注意文章的时效性与准确性, 作者不对文章的有效性负责.

你可能感兴趣的:(#gentoo)