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

fah*_*ler 6 linux ubuntu cgroups docker ubuntu-14.04

我从'sudo docker -d'得到这个警告:

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

即使遵循这些步骤(如此链接):

  • 在/ 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重启

我的问题是:

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

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

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

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

cgroup:"memory"需要在root上将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服务器上的管理任务比较陌生.

Roh*_*gal 5

如果您正在使用交换并且想要强制执行包括内存和交换的内存限制,那么 cgroup 交换限制很重要。我有没有交换的 m/c,所以我从来没有启用它。

如果您希望报告的内存使用情况包括所有 subcgroup 报告的内存,则 use_hierarchy 很有用。例如,当 use_hierarchy=1 时,/sys/fs/cgroup/memory/parent 将报告该 cgroup 下的进程以及任何子 cgroup(如 /sys/fs/cgroup/memory/parent/child)的进程使用的内存。这始终是启用的有用设置。但它在大多数操作系统上默认不启用。

总之,您的 docker 容器在没有这两个设置的情况下也能正常工作。启用这些会给你一些额外的好处 - 尤其是。如果您关心限制交换使用和获得准确的内存报告。