linux – 如何阻止用户在服务器上运行CPU繁重的程序?

前端之家收集整理的这篇文章主要介绍了linux – 如何阻止用户在服务器上运行CPU繁重的程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个24核服务器,用户通过SSH连接.

它们并不意味着它们运行像cpu,R这样的cpu程序,或者它们自己的脚本执行模拟或类似的事情.

有没有办法自动检测和杀死-9 cpu重进程?

解决方法

您应该使用cgroups来执行此操作.

请参阅“man cgrules.conf”和“man cgconfig.conf”.

Fedora上的systemctl的更高版本应该支持用户直接粘贴到cgroup中,这样你就可以更好地做到这一点.

这不会限制cpu,因为如果有可用的cpu资源(没有人使用),它将使用所有cpu但是其他东西也要求cpu它将根据配置的“cpu”分配cpu的份额.分享“价值.

另外,正如建议在cpu时间上坚持ulimit将确保运行过程被给予一个cuculative数量的jiffies之前被杀死使用太多的cpu.这可能会对用户正在使用的长时间运行的流程产生负面影响,这些流程在很长一段时间内自然会积累一定数量的jiffies.

您还可以使用cgroup强制所有用户仅在您的某个核心上进行实时处理,这样您至少可以保证一个cpu是否被淹没,它对其余的操作系统进程没有负面影响.

CGroups也是限制内存使用的一种很棒的方法.你可以将它与pam_limits结合起来以防止叉轰炸.

编辑:我还应该指出我认为你的要求不一定相关.让1个进程占用100%的cpu并不一定是坏事,为其他进程提供运行时间. Linux上完全公平的调度程序无论如何都能保证这种行为.

如果cpu只是空闲,那么使用所有cpu的进程没有任何问题.您的问题只出现在多个进程要求cpu时间且其中一个进程占用cpu的情况下.这就是cgroup应该受益的地方,因为它允许你控制在cpu争用情况下你将分配不同进程的cpu时间.

猜你在找的Linux相关文章