Moby: Debian 股票内核不支持限制内存

创建于 2013-04-11  ·  7评论  ·  资料来源: moby/moby

Docker 测试工具在 Debian 中失败,因为其内核不支持 cgroup 内存限制。 尽管 Debian 内核配置中的以下补丁将启用命名支持,但这还不是官方内核包的一部分

--- /boot/config-3.2.0-4-amd64 2013-02-27 01:21:37.000000000 -0800
+++ config-3.2.0-4-amd64 2013-04-02 19:23:20.661887146 -0700
@@ -128,9 +128,9 @@
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_DISABLED=y
+# CONFIG_CGROUP_MEM_RES_CTLR_DISABLED 未设置
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED 未设置
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y

最有用的评论

对于像我这样想知道如何做到这一点的任何其他可怜的没有胡子的菜鸟......
http://askubuntu.com/a/19487/62915

  1. 添加cgroup_enable=memory swapaccount=1到任何目前在GRUB_CMDLINE_LINUX_DEFAULT的VAR /etc/default/grub
  2. sudo update-grub使其可以使用
  3. 重新启动实例,应该可以正常工作

所有7条评论

此问题与包装问题 #251 有关

这可能应该报告给 Debian 项目,以便他们可以修复它。

@crack :它有效。 谢谢!

@unclejack :我对此进行了更多研究以将其呈现给 Debian,结果证明虽然股票内核不支持限制内存,但它确实支持设置内核启动参数以启用它。 参数设置为:

cgroup_enable=内存交换帐户=1

总而言之,对于这个问题,Debian 用户可以充分享受 docker 通过标准 Wheesy 内核通过其所有测试的乐趣,将以下参数添加到他们的 /boot/grub/grub.cfg 中:

linux /boot/vmlinuz-3.2.0-4-amd64 [其他参数] cgroup_enable=memory swapaccount=1

这意味着通过良好的文档,没有特殊包的 Debian Wheesy 完全支持 Docker

将此问题交叉发布到 Debian docker 软件包,问题 #251

仅供参考,如果您希望在内核包更新或重新生成 initrd 时保留这些选项,debian 中添加这些选项的标准方法是将它们添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT

对于像我这样想知道如何做到这一点的任何其他可怜的没有胡子的菜鸟......
http://askubuntu.com/a/19487/62915

  1. 添加cgroup_enable=memory swapaccount=1到任何目前在GRUB_CMDLINE_LINUX_DEFAULT的VAR /etc/default/grub
  2. sudo update-grub使其可以使用
  3. 重新启动实例,应该可以正常工作
此页面是否有帮助?
0 / 5 - 0 等级