社交服务器占用,如何对占据服务器大量cpu资源的用户进行限制

研究生工作过程中遇到有学生无视linux服务器实际的CPU核心数,开出几十上百个运算密集型进程,其他用户登陆困难或无响应等异常情况,需要对占用大头(CPU老虎?)的CPU资源做出限制。

使用cgroup可以实现用户组级别的限制,把老虎们扔进限制组就能解决问题,如果需要分别限制用户那就每个老虎一个组(前提是老虎属于少数,如果多数人都是老虎那就得考虑加CPU甚至加服务器了,组里穷,提买服务器基本属于说废话)。

注意linux中创建用户时默认会创建同名的组,所以按用户限制时不需要额外建组,直接限制用户的名字即可。

1.安装cgroup

服务器环境为centos7,使用yum安装cgroup:

yum install libcgroup-tools libcgroup-pam libcgroup

2.配置cgroup

设置cgroup服务开机启动:

systemctl enable cgconfig

systemctl enable cgred

编辑/etc/cgconfig.conf:

group cpu_limit1{

cpu{

# 限制CPU使用最大限度为12个核心,核心数自行修改

cpu.cfs_period_us=100000;

cpu.cfs_quota_us=1200000;

}

} # 限制器1

group cpu_limit2{

cpu{

# 限制CPU使用最大限度为12个核心,核心数自行修改

cpu.cfs_period_us=100000;

cpu.cfs_quota_us=1200000;

}

} # 限制器2

编辑/etc/cgrules.conf:

@user1 cpu cpu_limit1

@user2 cpu cpu_limit2

第一列为用户(组)名,第二列为限制类型,第三列为限制器名,即前述/etc/cgconfig.conf中的限制器

注:同一个限制器下建议只放置一个用户,如果放置多个用户(或者含多个用户的组)会导致组内争抢限制器的资源,组内一个人高占用会使得其他人卡住,违背了使用限制器的初衷“限制少数高占用用户,使得低占用用户体验流畅”。

重启服务:

systemctl restart cgconfig

systemctl restart cgred

完成

面对这种CPU老虎,服务器终于重新丝滑流畅了起来

5edb9f4e4c94

捕获.JPG

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值