LXC - Cgroup memory controller: missing

11,838

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.

  1. Add apt-line of backports
  2. Run "apt-get install linux-image-3.2.0-0.bpo.4-amd64" (or -686 for i386)
  3. Add a kernel boot option "cgroup_enable=memory" to your bootloader setting (e.g. /etc/default/grub) to enable it.
  4. 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.

Share:
11,838
André Bolinhas
Author by

André Bolinhas

Updated on June 22, 2022

Comments

  • André Bolinhas
    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