Docker警告CGroup交换限制,memory.use_hierarchy

2015-03-04 linux ubuntu docker ubuntu-14.04 cgroups

我从'sudo docker -d'收到此警告:

警告:您的内核不支持cgroup交换限制。

即使按照以下步骤操作(如此链接中所示 ):

  • 修改/ etc / default / grub中的以下行(我都做了很好的测量)

    RUB_CMDLINE_LINUX_DEFUALT =“ cgroup_enable =内存swapaccount = 1” GRUB_CMDLINE_LINUX =“ cgroup_enable =内存swapaccount = 1”

  • 然后通过以下方式更新-grub /重新启动

    sudo update-grub;须藤重启

我的问题是:

1)我应该担心这个警告吗?

我想应该是因为我试图在强制执行内存限制很重要的用例中使用docker容器。

2)更改内存use_hierarchy设置是一个好主意吗? -或-解决此问题的最佳方法是什么?

我在“ dmesg”中看到此警告。我不确定尝试将use_hierarchy设置更改为“ 1”(也不确切地做到这一点)是否是个好主意

cgroup:“内存”要求在根目录上将use_hierarchy设置为1。

或者,是否有更好的方法来解决此问题?我只是在这里开枪,也许内核升级会有所帮助吗?我看到一些3.16内核升级是可能的。

环境: 我正在使用Docker版本1.0.1运行Ubuntu 14.04 x64(内核:3.13.0-43-generic x86_64)

其他说明: 我还阅读了其他有关类似docker / cgroup错误的在线帮助文​​章,其中说安装apparmor_parser可以解决该问题。但是,在我的系统上,已经安装了apparmor,并且似乎可以正常启动(每个dmesg)。另外,该文件存在:/ sbin / apparmor_parser

另外,我对Linux服务器上的管理任务还是比较陌生的。

Answers

如果您正在使用交换并且要实施包括内存和交换在内的内存限制,则cgroup交换限制很重要。我的M / C没有交换功能,因此我从未启用它。

如果要报告的内存使用情况包括所有子组报告的内存,use_hierarchy很有用。例如,在use_hierarchy = 1的情况下,/ sys / fs / cgroup / memory / parent将报告该cgroup下的进程以及所有子cgroup(例如/ sys / fs / cgroup / memory / parent / child)使用的内存。这始终是启用的有用设置。但是默认情况下,在大多数操作系统上未启用该功能。

总之,没有这两个设置,您的Docker容器将可以正常工作。启用这些功能会给您带来一些额外的好处-尤其是。如果您关心限制交换的使用并获得准确的内存报告。

Related