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}'` 

相关推荐