Docker —警告:不支持交换限制


29

我在Ubuntu 16.04上运行Docker(1.9.1)。当我运行docker info输出的最后一行时说WARNING: No swap limit support

INFO[0781] GET /v1.21/info                              
Containers: 0
Images: 0
Server Version: 1.9.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.4.0-62-generic
Operating System: Ubuntu 16.04.1 LTS (containerized)
CPUs: 2
Total Memory: 3.664 GiB
Name: lenovo
ID: A3ZV:2EVK:U5QB:O7CG:PEDL:SANK:X74X:QNLC:VOTK:GFDR:S24T:C5KT
WARNING: No swap limit support

此警告是什么意思?我确实有一个交换分区,free -mh尽管我不明白为什么我的交换在available

total        used        free      shared  buff/cache   available
Mem:           3.7G        1.9G        182M        157M        1.6G           1.3G
Swap:          3.8G        2.9M        3.8G

Answers:


29

交换限制支持允许您限制容器使用的交换,请参阅https://docs.docker.com/engine/admin/resource_constraints

根据https://docs.docker.com/engine/installation/linux/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities

您可以按照以下说明在Ubuntu或Debian上启用这些功能。即使Docker未运行,内存和交换记帐也会导致总可用内存的开销约为1%,并且总体性能会降低10%。

1)以具有sudo特权的用户身份登录Ubuntu或Debian主机。

2)编辑/etc/default/grub文件。添加或编辑GRUB_CMDLINE_LINUX行以添加以下两个键值对:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

3)更新GRUB。

$ sudo update-grub

3
一个小的补充:此后需要重新启动服务器。
卧虎藏龙的小猫

3

在我的Google Cloud Compute实例上,我必须做的与接受的答案有些不同。

1)编辑文件/etc/default/grub.d/50-cloudimg-settings.cfg

sudo nano /etc/default/grub.d/50-cloudimg-settings.cfg

1.1)修改或创建行

GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 cgroup_enable=memory swapaccount=1"

1.2)保存

2)更新组

sudo update-grub

3)重启

sudo reboot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.