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

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

WARNING: Your kernel does not support cgroup swap limit.

即使遵循这些步骤(如此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: “memory” requires setting use_hierarchy to 1 on the root.”

或者,有没有更好的方法来解决这个问题?我只是在这里开枪,也许内核升级会有所帮助?我看到一些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服务器上的管理任务比较陌生.

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

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

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

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...