Lxc
LXC cpu.shares 不起作用
從昨天開始,我一直在努力解決 LXC 容器的問題並限制每個容器的 CPU 資源。在我的情況下,命令 like
lxc-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 - - - -
容器
srv50
已cpu.shares
設置為 100,而srv51
設置為 50。兩個容器都執行 commanddd 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 上遇到的唯一問題。因為我不需要它,所以我不會再想它了。:) 乾杯!