关于cgroup交换限制的docker警告,memory.use_hierarchy

时间:2015-03-03 18:06:55

标签: linux ubuntu docker ubuntu-14.04 cgroups

我收到了来自' sudo docker -d':

的警告
  

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

即使遵循了这些步骤(如此link):

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

      

    RUB_CMDLINE_LINUX_DEFUALT =" cgroup_enable = memory swapaccount = 1"   GRUB_CMDLINE_LINUX =" cgroup_enable = memory swapaccount = 1"

  • 然后通过

    更新-grub / reboot
      

    sudo update-grub; sudo reboot

我的问题是:

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

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

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

我在' dmesg'中看到了这个警告。我不确定尝试将use_hierarchy设置更改为' 1'是否是一个好主意。 (也不知道如何做到这一点)

  

cgroup:"记忆"需要在根目录上将use_hierarchy设置为1."

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

环境: 我使用docker version 1.0.1运行Ubuntu 14.04 x64(内核:3.13.0-43-generic x86_64)

其他说明: 我已经阅读了有关类似docker / cgroup错误的其他在线帮助文​​章,说安装apparmor_parser修复它。但是,在我的系统上,安装了apparmor并且似乎启动得很好(每dmesg)。此外,此文件存在:/ sbin / apparmor_parser

另外,我对Linux服务器上的管理任务还不熟悉。

1 个答案:

答案 0 :(得分:1)

如果您使用交换并希望强制执行包含内存和交换的内存限制,则cgroup交换限制很重要。我有m / c没有交换,所以我从来没有启用它。

如果您希望报告的内存使用量包括所有子组报告的内存,则

use_hierarchy非常有用。例如,使用use_hierarchy = 1,/ sys / fs / cgroup / memory / parent将报告该cgroup下的进程以及任何子组(如/ sys / fs / cgroup / memory / parent / child)使用的内存。这始终是一个有用的启用设置。但是在大多数操作系统上默认情况下都没有启用它。

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