Sto eseguendo Docker (1.9.1) su Ubuntu 16.04. Quando eseguo docker info
l'ultima riga dell'output dice 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
Cosa significa questo avviso? Ho sicuramente una partizione di swap, come evidenziato da free -mh
anche se non capisco perché il mio scambio non ha alcuna voce in 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
Risposta accettata:
Il supporto del limite di scambio consente di limitare lo scambio utilizzato dal contenitore, vedere https://docs.docker.com/engine/admin/resource_constraints
Secondo https://docs.docker.com/engine/installation/linux/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities :
Puoi abilitare queste funzionalità su Ubuntu o Debian seguendo
queste istruzioni. La contabilizzazione della memoria e dello scambio comporta un sovraccarico di
circa l'1% della memoria totale disponibile e una riduzione delle prestazioni complessive del 10%
, anche se Docker non è in esecuzione.
1) Accedi all'host Ubuntu o Debian come utente con privilegi sudo.
2) Modifica il /etc/default/grub
file. Aggiungi o modifica il GRUB_CMDLINE_LINUX
riga per aggiungere le seguenti due coppie chiave-valore:
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
3) Aggiorna GRUB.
$ sudo update-grub