linux中限制用户进程CPU占用率

linux中限制用户进程CPU占用率

  关于这个问题,搜索了很多资料没有很好的答案,比较多的就是通过pam来限制用户资源,其中一项是CPU时间,但没有CPU占用率。

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

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

  有一种折中的方法,不是将目标进程杀死,而是适当调整其nice值,具体见如下shell程序:
引用:
renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'`
更改CPU利用率对程序的结果有影响吗?
没有影响,nice值就是程序优先级。