저는 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
답변1
스왑 제한 지원을 통해 컨테이너에서 사용되는 스왑을 제한할 수 있습니다.https://docs.docker.com/engine/admin/resource_constraints
아래 지침에 따라 Ubuntu 또는 Debian에서 이러한 기능을 활성화할 수 있습니다. Docker가 실행되지 않는 경우에도 메모리 및 스왑 계산으로 인해 사용 가능한 총 메모리의 약 1%에 해당하는 오버헤드가 발생하고 전체 성능이 10% 저하됩니다.
1) sudo 권한이 있는 사용자로 Ubuntu 또는 Debian 호스트에 로그인합니다.
2)
/etc/default/grub
파일을 편집합니다.GRUB_CMDLINE_LINUX
다음 두 개의 키-값 쌍을 추가하려면 행을 추가하거나 편집하세요 .GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
3) GRUB를 업데이트합니다.
$ sudo update-grub
답변2
내 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