我有一组 Linux 计算机,由许多用户共享,我想确保没有用户可以淹没系统并有效地阻止其他人运行任何程序。例如,如果用户A
正在运行一个 CPU 密集型作业,并且用户B
正在运行 50 个作业,我希望用户A
的作业实际上最多有 50% 的 CPU 使用率。目前,在这种情况下,用户B
似乎获得了 50 倍于用户的 CPU 资源A
。
我查看了一下,cgroups
因为它听起来正是我想要的。但是,在单用户场景中(即如果用户A
不想要任何 CPU 时间),我希望用户B
能够访问系统的全部计算资源。我不清楚如何使用 cgroups 来实现这一点。我发现的所有参考资料都谈到了设置硬性限制,例如“用户B
最多可以拥有 50% 的 CPU”。