如何设置 cgconfig.conf 文件以将用户名的所有进程的 CPU 限制为 CPU 的 10%?

如何设置 cgconfig.conf 文件以将用户名的所有进程的 CPU 限制为 CPU 的 10%?

大约 5 年来,我一直想在 CentOS(6) 中限制用户的 CPU - 而不使用 cloudlinux。

到目前为止,仍然无法得到答案。cgroups 似乎是一个解决方案。但是,我不知道如何设置配置文件。

这个问题开始回答了这个问题,但没有回答这个问题。我每隔几个月就会再次搜索,但无济于事。
如何将整个用户(而不仅仅是进程)的 CPU 使用率限制在 10% 以下?

我确实需要帮助来设置它,因为这确实是必要的。


这是我目前得到的。

我安装了服务 libcgroup yum install libcgroup
我检查ls /cgroup并确认它已安装。我得到了以下输出:
blkio cpu cpuacct cpuset devices freezer memory net_cls

现在,我转到该cgconfig.conf文件。它位于/etc/cgconfig.conf

mount { ... }在文件的部分下方cgconfig.conf,我添加了以下内容。我不知道这是否正确(不知道这是否占用了 10% 的 CPU)。

我需要一些帮助来完成这项工作,以便我最终可以将用户限制为所需的 CPU 百分比(并且,理想情况下,如果可能的话,限制内存!)

这是为了创建名为limitcpu(虽然我实际上想称之为有限组或其他名称,因为我也想限制内存,但现在我们就称它为limitcpu组)的组。

group limitcpu {

    cpu {
            cpu.shares = 200;
            # cpu.cfs_period_us
            # cpu.cfs_quota_us
    }
    memory {

    }
}

然后我应该使用这个模板:

template users/%g/%u {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }

%g应该是组名。
%u应该是用户名。

好的,假设我想要限制的用户名为resourcehoggeruser。我该如何完成上述配置来限制分配给该用户的 CPU 和内存?

它看起来应该是这样的吗?

template users/limitcpu/resourcehoggeruser {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }
  • 我还需要什么才能让它工作?上面的代码准确吗?
  • 当代码正确时,这会实现我想要的效果吗,即将用户名产生的任何进程限制在所需的总 CPU 百分比内?
  • 这是文件中放置该代码的正确位置吗?

什么是“共享”?假设我有 16 个 CPU 和 24GB RAM。

  • cpu.shares如果我想要 10% 的 CPU,我应该输入什么数字?
  • CPU 占用 20% 怎么样?

记忆力怎么样?

  • 我还使用什么代码来限制用户所有进程的内存?
  • 如果它使用我猜想的那种东西,mem.shares那么 10% 内存的“份额”是多少?20% 内存呢?

非常感谢您的帮助!非常感谢。我真的需要让它工作起来。我搜索了很长时间,仍然找不到明确的答案,所以我真的需要你的帮助。

相关内容