LXC - Cgroup memory controller: missing
Solution 1
The kernel of Debian 6 has no memory cgroup feature. However you can run lxc without it.
If you NEED memory cgroup, it's easy to install the new kernel from backports.
- Add apt-line of backports
- Run "apt-get install linux-image-3.2.0-0.bpo.4-amd64" (or -686 for i386)
- Add a kernel boot option "cgroup_enable=memory" to your bootloader setting (e.g. /etc/default/grub) to enable it.
- reboot
Or, if you'd like to re-compile the kernel, you can use kernel-package system of Debian; http://newbiedoc.sourceforge.net/system/kernel-pkg.html
Solution 2
I am having similar memory cgroup issues, and have looked into it quite a bit. I wrote a blog entry about here:
http://blog.raymond.burkholder.net/index.php?/archives/639-Debian-Stretch-LXC-Memory-Controller.html
In summary, the kernel is compiled with the necessary memory cgroup support. The fly-in-the-ointment: lxc-checkconfig has a bug in it, and will not properly show the status of the memory cgroup. CONFIG_CGROUP_MEM_RES_CTLR=y
is applicable for older kernels only (sometime before 3.6, I believe).
I end up making two adjustments: one adjustment to the /boot/config-$version
, and one adjustment to /etc/default/grub
. Both are explained in the article.
But bottom line, the general recommendation appears to be: don't enable it if you really don't need to perform memory limitation management on containers. There is some performance and memory overhead.
Solution 3
Update kernel from here.
Then reboot your system. This problem is solved automatically, but if not go to /boot/config-<versionnumber>-generic
. For instance: /boot/config-3.11.0-13-generic
Here see if CONFIG_CGROUP_MEM_RES_CTLR=y
is available or not. If 'yes' then ok, otherwise paste it that in.
André Bolinhas
Updated on June 22, 2022Comments
-
André Bolinhas almost 2 years
I'm trying install LXC (0.7.4.1) on my Debian 6 but when I run the lxc-checkconfig I get "Cgroup memory controller: missing"
root@lxcsrv01:~# lxc-checkconfig Kernel config /proc/config.gz not found, looking in other places... Found kernel config file /boot/config-2.6.32-5-686 --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled --- Control groups --- Cgroup: enabled Cgroup namespace: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: missing Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled File capabilities: enabled enabled Note : Before booting a new kernel, you can check its configuration usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
According google search I need to recompile my kernel but I don't know how. Someone can explain me how to do this?
Best regards