admin管理员组文章数量:1655367
研究生工作过程中遇到有学生无视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老虎,服务器终于重新丝滑流畅了起来
捕获.JPG
版权声明:本文标题:社交服务器占用,如何对占据服务器大量cpu资源的用户进行限制 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729692196a1210226.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论