LXC cpu.shares 不起作用

LXC cpu.shares 不起作用

从昨天开始,我一直在努力解决 LXC 容器的问题以及限制每个容器的 CPU 资源的问题。就我而言,命令 likelxc-cgroup -n srv50 cpu.shares 100不会带来任何结果 - 容器仍然平等地使用 CPU。

我正在使用 Centos 7 和 LXC 1.0.8。我检查的所有机器都具有相同的效果:设置cpu.shares不执行任何操作。

这是来自我的 2 核虚拟机的 systemd-cgtop 屏幕:

Path                                                                             Tasks   %CPU   Memory  Input/s Output/s

/                                                                                  178  199.7   360.8M        -        -
/lxc                                                                                 -  198.0    16.8M        -        -
/lxc/srv51                                                                           7   99.8     8.4M        -        -
/lxc/srv50                                                                           7   98.2     8.4M        -        -
/system.slice/NetworkManager.service                                                 2      -        -        -        -
/system.slice/auditd.service                                                         1      -        -        -        -

Containersrv50设置cpu.shares为 100,而srv51设置为 50。两个容器都运行 command dd if=/dev/urandom | bzip2 -9 >> /dev/null。我预计一个容器占用 66%,其他容器占用 133% CPU(或类似的东西),但两者都使用 100%。

一个提示。当我试图找到哪个容器使用最多的 CPU 时,我在htop工具中注意到所有容器都具有相同的 cgroup::name=systemd:/user.slice/user-0.slice/session-1.scope?- 不确定这是否正确 - 只是注意到这一点。

限制内存有效,CPU 不行。

我刚刚完成了 cgroup 的测试,无法设置cpu.share任何进程(通过将其移动到某个组),因此它是一致的。闻起来像缺少一些内核开关。

2:我的示例中有一个错误。要查看 2 核计算机上的负载差异,每个容器必须至少有 2 个进程 100% 运行。无论如何,这不是问题。

答案1

是的,本例中的问题是测试此功能。它按预期工作。我在其他具有 2 核的云虚拟机上遇到的唯一问题。因为我不需要它,所以我不会再去想它。 :) 干杯!

相关内容