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

回答:


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%のオーバーヘッドと、Dockerが実行されていない場合でも全体のパフォーマンスが10%低下します。

1)sudo特権を持つユーザーとしてUbuntuまたはDebianホストにログインします。

2)/etc/default/grubファイルを編集します。GRUB_CMDLINE_LINUX行を追加または編集して、次の2つのキーと値のペアを追加します。

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)grupを更新する

sudo update-grub

3)再起動

sudo reboot
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.