限制 Ubuntu 机器上一组用户的 RAM

限制 Ubuntu 机器上一组用户的 RAM

我有一个基于 GPU 的系统。多个用户使用该系统,因此 RAM 经常被充分利用,没有留给自己的内存。我想对除我自己之外的所有用户设置最大 RAM 限制。我已经尝试过以下方法:

  1. 使用在 Ubuntu 上创建一个组groupadd
    用于根据 3.1 点在 ubuntu 上cgroups创建组memlimit教程

    问题:显然,cgcreate无法获取我创建的组的 UID。

  2. 关注了这个回答:使用 Ubuntu 在 Ubuntu 上
    创建了一个组。在 中 创建了一个群组。 更新了与. 终于跑了groupnamegroupadd
    memlimit/etc/cgconfig.conf
    /etc/cgrules.conf@groupname memory memlimit/
    sudo cgrulesengd

    问题:没有错误,但内存限制不起作用。

答案1

如果统一 cgroup(cgroup 版本 2)可以接受并且您有管理员密码,以下步骤应该适用于 Ubuntu18.04(我不确定 Ubuntu 的旧版本):

  1. 添加systemd.unified_cgroup_hierarchy=1GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub,运行update-grub
  2. 进行以下操作/etc/systemd/system/user.slice.d/allmemory.conf

[Slice] MemoryHigh=32G

  1. 重新启动 Linux。那么包括您在内的所有用户的内存消耗都被限制为 32 GB。要摆脱此限制,请通过 启动另一个 shell systemd-run --scope /bin/bash。新的 bash shell 属于另一个 cgroup,不受内存控制。

相关内容