Lxc

LXC cpu.shares 不起作用

  • October 15, 2016

從昨天開始,我一直在努力解決 LXC 容器的問題並限制每個容器的 CPU 資源。在我的情況下,命令 likelxc-cgroup -n srv50 cpu.shares 100不會帶來任何結果 - 容器仍然平等地使用 CPU。

我正在使用 Centos 7 和 LXC 1.0.8。我檢查的所有機器都具有相同的效果:設置cpu.shares沒有任何作用。

這是來自我的 2 核 VM 的 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      -        -        -        -

容器srv50cpu.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不行。

我剛剛完成了 cgroups 的測試,我無法cpu.share為任何程序設置(通過將其移動到某個組),所以它是一致的。聞起來像缺少核心開關。

2:我的範例中有一個錯誤。要查看 2 核機器上的負載差異,我們必須讓每個容器至少有 2 個程序 100% 執行。無論如何,這不是問題。

是的,在這種情況下,問題在於測試此功能。它按預期工作。我在其他具有 2 個核心的雲 VM 上遇到的唯一問題。因為我不需要它,所以我不會再想它了。:) 乾杯!

引用自:https://unix.stackexchange.com/questions/315110