这是我第一次在 Ubuntu 论坛上发帖,如果这个问题重复了或者很愚蠢,请原谅我。
简单介绍一下背景:我是一名 14 岁的开发人员,拥有一台 Ubuntu 20.04 服务器。我创办了一家小型托管服务公司,积累了不少客户。现在,我们有一个定价模型,例如某些用户只能获得 1vCPU 和 4GB 内存,而其他用户可以获得 6vCPU 和 20GB 内存,每 6 个月 80 美元。
我的问题:我无法限制用户可以获得的 vCPU 和 RAM 数量。我尝试了 cgroups 之类的程序,但当我通过 检查用户拥有多少 RAM 时free -m
,服务器返回给我 24GB(虚拟机上有多少内存)。
我的问题:是否有适当的方法来限制特定用户的RAM 和 vCPU 使用情况如何?最好能给我一份指南,那就完美了!提前感谢您提供的任何帮助!
取得一些进展:使用 cgroup,我可以限制特定用户的 CPU 使用率 (/sys/fs/cgroup/user.slice/user-USERID.slice)。在这里,我可以编辑 cpu.cfs_quota_us,但这只会限制 CPU 百分比。对我来说还有一件奇怪的事情,当我执行 cat cpu.cfs_quota_us 时,我得到了 200000?那不是 200% 吗?我以为最大值的默认值是 101000?我的主要问题仍然是,我如何限制每个用户的核心数和内存?
更多进展:根据redhatguideforcgroupcpuset 目录不再使用 cpu 目录,而是管理多核我认为这就是我需要的。
现在我快要成功了。在 /sys/fs/cgroup/cpuset DIR 中,我可以运行 cat cpuset.cpus,它会返回 0-5(这是我的 VM 上存在的所有 6 个核心)。现在,如果有人了解基本的 cgroups (v2),可以帮助我如何将其设置为特定用户,我将不胜感激。这对我有帮助