Docker - WARNUNG: Keine Unterstützung für Swap-Limits

29

Ich verwende Docker (1.9.1) unter Ubuntu 16.04. Bei mir steht in docker infoder letzten Zeile der Ausgabe 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

Was bedeutet diese Warnung? Ich habe definitiv eine Swap-Partition, wie sich zeigt, free -mhobwohl ich nicht verstehe, warum mein Swap keinen Eintrag unter hatavailable

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
Stephen C
quelle

Antworten:

29

Mithilfe der Unterstützung für Swap-Limits können Sie den vom Container verwendeten Swap begrenzen (siehe https://docs.docker.com/engine/admin/resource_constraints)

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

Sie können diese Funktionen unter Ubuntu oder Debian aktivieren, indem Sie diese Anweisungen befolgen. Die Speicher- und Auslagerungsberechnung verursacht einen Mehraufwand von etwa 1% des gesamten verfügbaren Speichers und einen Leistungsabfall von 10%, selbst wenn Docker nicht ausgeführt wird.

1) Melden Sie sich beim Ubuntu- oder Debian-Host als Benutzer mit sudo-Berechtigungen an.

2) Bearbeiten Sie die /etc/default/grubDatei. Fügen Sie die GRUB_CMDLINE_LINUXZeile hinzu oder bearbeiten Sie sie , um die folgenden zwei Schlüssel-Wert-Paare hinzuzufügen:

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

3) Aktualisieren Sie GRUB.

$ sudo update-grub
Samizdis
quelle
3
Ein kleiner Zusatz: Der Server muss danach neu gestartet werden.
Crouching Kitten
3

Auf meiner Google Cloud Compute-Instanz musste ich etwas anders vorgehen als bei der akzeptierten Antwort.

1) Bearbeiten Sie die Datei /etc/default/grub.d/50-cloudimg-settings.cfg

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

1.1) Ändern oder erstellen Sie die Linie

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

1.2) speichern

2) update grup

sudo update-grub

3) neu starten

sudo reboot
Kai
quelle