我有一个基于 GPU 的系统。多个用户使用该系统,因此 RAM 经常被充分利用,没有留给自己的内存。我想对除我自己之外的所有用户设置最大 RAM 限制。我已经尝试过以下方法:
答案1
如果统一 cgroup(cgroup 版本 2)可以接受并且您有管理员密码,以下步骤应该适用于 Ubuntu18.04(我不确定 Ubuntu 的旧版本):
- 添加
systemd.unified_cgroup_hierarchy=1
到GRUB_CMDLINE_LINUX_DEFAULT
中/etc/default/grub
,运行update-grub
。 - 进行以下操作
/etc/systemd/system/user.slice.d/allmemory.conf
[Slice] MemoryHigh=32G
- 重新启动 Linux。那么包括您在内的所有用户的内存消耗都被限制为 32 GB。要摆脱此限制,请通过 启动另一个 shell
systemd-run --scope /bin/bash
。新的 bash shell 属于另一个 cgroup,不受内存控制。