加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 17:24:25 所属栏目:Linux 来源:网络整理
导读:我有一个24核服务器,用户通过SSH连接. 它们并不意味着它们运行像CPU,R这样的CPU程序,或者它们自己的脚本执行模拟或类似的事情. 有没有办法自动检测和杀死-9 CPU重进程? 解决方法 您应该使用cgroups来执行此操作. 请参阅“man cgrules.conf”和“man cgconfi
我有一个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时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读