systemd 资源控制——所有用户/root

systemd 资源控制——所有用户/root

我正在使用 Debian Bullseye 和systemd247。我有一百多个用户,我想使用cgroups.我使用set-property,它按预期工作,例如对于内存和AllowedCPUs属性:

systemctl set-property user.slice MemoryHigh=300G
systemctl set-property user.slice MemoryMax=305G
systemctl set-property user.slice AllowedCPUs=9-64

其想法是让普通用户使用80-90%的内存和大部分CPU。另外 10-20% 的资源应始终可供其他切片使用对于root用户(我们在设置限制方面非常自由,最近我们不小心被学生用叉子轰炸了)。

但这些限制似乎也会影响用户root,我找不到[email protected]类似的东西。这个想法是允许root在出现问题时使用备用资源,并且始终留有一些备用 I/O、内存和 CPU。cgroups似乎是个好主意,因为所有开关都在那里。有人可以帮助并告诉您如何实现此目标或在多用户环境中systemd提供一些通用的最佳实践吗?cgroups或者我这样做完全错误,应该以不同的方式做?

建议答案(2022 年 6 月 19 日):

我想我设法按照如下所述做到了这一点,但我不知道这是否是“正确”的方法。

  • systemddrop-in目录内有层次结构。一般来说,更具体的drop-in目录定义会覆盖不太具体的目录定义。 (https://www.freedesktop.org/software/systemd/man/systemd.unit.html#
  • /etc/systemd/system/user-.slice.d/somethin.conf将被覆盖/etc/systemd/system/user-0.slice.d/something.conf。前一个目录中设置的限制将适用于所有用户,包括root,但后一个目录中的定义将覆盖它们并应用仅有的root。 (https://www.freedesktop.org/software/systemd/man/[电子邮件受保护]
  • 使用为root用户保留的备用资源需要正确root登录,例如在 TTY 上或通过控制台(如果是虚拟机)。sudo或者su是提升权限的方法,但不挂钩cgroup系统(或者至少我不知道如何做到这一点)。使用sudosu用户仍然受到user-UID@切片限制的约束。

亲切的问候
~~
K.

相关内容