Linux系统中如何限制用户进程CPU占用率

  实际上,在linux服务器中,用户进程运行很长时间是可以接受的。而占用CPU过高则让其他用户无法忍受,而其很有可能是用户程序有问题,这个时候系统应该自动阻止这样的进程继续消耗系统资源。

最简单的方法就是通过ps发现CPU占用率超过某个限制的用户进程,然后将该进程杀死,这种做法很暴力,而且用户发现他的进程被杀以后很可能又启动进程,这样恶性循环。

有一种折中的方法,不是将目标进程杀死,而是适当调整其nice值,一般时候,使用任何程序时,其 NICE 值都是 0,意思是CPU 的使用权值。如果常用程序有较高的优先权,自然效率就会比较好,优先权的值从 -20 到 19 ,数字越小优先权就越高,但要注意的是一般使用者只能调低( 0~19),只有 root 有权调高优先权( -20 ~ 19 )。我们可以用 ps -fel 来观察 NI 那栏就知道。

说了半天,到底如何调整呢?有一个指令 /bin/nice 就是用来作这件事的,用法如下∶nice -n 程序名称 参数...
n 的值从 -20 到 19,这是手动操作,在 KDE 中,可以用选单编辑器来设定,方法是在你要调整优先权的程序的 [ 命令 ] 那一栏的前面,加上 /bin/nice --n 就可以了。

比方常用 Mozilla 来浏览网页,改成 /bin/nice --10 /usr/local/mozilla/mozilla 这样Mozilla执行时,就比其他程序有更高的优先权,在实际测试的时候,Mozilla 激活速度以及回应都快了不少,其他一些常用的程序,也可以比照办理。

经过这样调整後,开机速度提升,窗口程序的反应感觉上与 Windows 98 差不多了。

 

  还可以在程序运行时调整应用程序优先权具体见如下shell程序:
 

XML/HTML代码
  1. renice +10 `ps aux | awk { if ($3 > 0.8 && id -u $1 > 500) print $2}`  

 

 

 

上一篇: msn 最近更新 显示 第三方BLOG   下一篇: 如何找到耗费CPU资源的php程序?

提交疑问

回顶部