Докер - ВНИМАНИЕ: нет поддержки лимита подкачки

29

Я использую Docker (1.9.1) в Ubuntu 16.04. Когда я запускаю 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
Стивен С
источник

Ответы:

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, следуя этим инструкциям. На учет памяти и подкачки приходится около 1% общей доступной памяти и общее снижение производительности на 10%, даже если Docker не запущен.

1) Войдите на хост Ubuntu или Debian как пользователь с привилегиями sudo.

2) Отредактируйте /etc/default/grubфайл. Добавьте или измените GRUB_CMDLINE_LINUXстроку, чтобы добавить следующие две пары ключ-значение:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

3) Обновление GRUB.

$ sudo update-grub
Samizdis
источник
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
Кай
источник