我有一个 CentOS 7.4 系统,有许多通过 SSH 访问系统的用户。我需要一种方法来防止它们消耗系统的所有 CPU 和内存。例如,每个用户获得 1 个 CPU 核心或“1/20 份额”的 CPU 时间就可以了。
我最接近的是基于在用户登录后设置每个用户切片的 CPUQuota 属性。我这样做了,但设置没有效果。我缺少什么?
/etc/systemd/user.conf
设置DefaultCPUAccounting=yes
然后重新启动- 以测试用户身份登录
systemctl set-property user-43045.slice CPUAccounting=yes CPUQuota=20%
- 作为用户,在 cgroup (systemd-cgls) 内的 shell 中:
dd if=/dev/zero of=/dev/null bs=1024k
CPU 使用仍然没有限制。有没有支持,不弃用限制SSH用户的方法? cgconfig+cgred 方法和 PAM 方法似乎在 CentOS 7 上根本不起作用。
编辑 #1 - 和解决方案
/etc/systemd/system.conf
对选项进行相同的更改后CPUQuota
现在已生效。因此,出于某种原因,systemd 需要跟踪系统和用户中的事物。