Swap

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

  • July 30, 2019

我在 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

交換限制支持允許您限制容器使用的交換,請參閱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"
  1. 更新 GRUB。
$ sudo update-grub

引用自:https://unix.stackexchange.com/questions/342735