高平均负载 cgroup 是否会给出“错误”的总体平均负载

高平均负载 cgroup 是否会给出“错误”的总体平均负载

假设您的系统有 2 个处理器。现在创建一个 cgroup 并将该组配置为仅使用 1 个处理器。用足够的进程填充它,使其平均负载为 5(以证明这一点);现在速度慢得令人绝望。

我假设平均负载/proc/loadavg也将为 5,即使不同的用户可以自由使用另一个 CPU,无需等待时间。

它是否正确?我可以引用这个消息来源吗?

答案1

你的理解是正确的。该指标可能会给人错误的印象,即整个系统超载,而它可能意味着只有特定的 cgroup 超载。

负载平均值是对正在运行的任务量的系统范围度量(另请参阅的描述/proc/loadavgman proc)。

同时,man cgroups,对于cpu控制器来说:

当系统繁忙时,可以保证 Cgroup 具有最小数量的“CPU 份额”。如果 CPU 不忙,这不会限制 cgroup 的 CPU 使用率。

因此,如果没有其他用户消耗 CPU,则该 cgroup 将占用所有 CPU。否则,它将受到 cgroup 中设置的任何限制(在您的假设示例中:1 个处理器)。

相关内容