tailieu-Docker

Ghi chép lại quá trình tìm hiểu Docker

View the Project on GitHub lamth/tailieu-Docker

Tìm hiểu về cgroup và giới hạn tài nguyên Container.

Giới thiệu về Cgroups.

Docker sử dụng cgroup để giới hạn tài nguyên container.

Memory

Rủi ro của việc hết bộ nhớ.

Giới hạn tài nguyên bộ nhớ cho container.

Tùy chọn Mô tả
-m hoặc --memory= Số lượng bộ nhớ tối đa container có thể sử dụng. Tối thiểu là 4m
--memory-swap Dung lượng bộ nhớ swap cấp cho container.
--memory-swappiness Cấu hình swapiness cho container
--memory-reservation Cho phép bạn chỉ định soft limit nhỏ hơn --memory, nó được kích hoạt khi Docker phát hiện sự tranh chấp hoặc bộ nhớ thấp trên máy chủ. Nếu bạn sử dụng --memory-reservation, giá trị này phải được set thấp hơn --memory để nó được ưu tiên. Bởi vì nó là 1 soft limit, nó không đảm bảo rằng container không vượt quá giới hạn.
--kernel-memory Dung lượng tối đa của kernel memory mà 1 container có thể sử dụng. Giá trị min cho phép: 4m. Do kernel memory không thể sử dụng bộ nhớ swap, nên nếu kernel memory của 1 container không đủ, thì nó sẽ block các tài nguyên ở trên host, và sẽ ảnh hưởng tới host và các containers khác
--oom-kill-disable Mặc định, nếu xảy ra lỗi out of mem, kernel sẽ thực hiện kill các tiến trình của 1 container. Để thay đổi điều này, ta có thể sử dụng options –oom-kill-disable. Ta chỉ disable oom ở trên container nào có set -m/–memory option. Nếu flag -m không được set, thì host có thể hết bộ nhớ và kernel có thể sẽ phải kill các tiến trình hệ thống của host để giải phóng bộ nhớ.

Chi tiết về --memory-swap

CPU

Cấu hình default CFS scheduler.

Tùy chọn Mô tả
--cpus= Quy định lượng tài nguyên cpu mà container có thể sử dụng, ví dụ: --cpu="1.5" thì container có thể sử dụng 1 và một nửa cpu của host. từ docker 1.13 trở lên
--cpu-period=<value> Specify the CPU CFS scheduler period, which is used alongside –cpu-quota. Defaults to 100 micro-seconds. Most users do not change this from the default. If you use Docker 1.13 or higher, use –cpus instead.
--cpu-quota=<value> Impose a CPU CFS quota on the container. The number of microseconds per –cpu-period that the container is limited to before throttled. As such acting as the effective ceiling. If you use Docker 1.13 or higher, use –cpus instead.
--cpuset-cpus Giới hạn container sử dụng những CPU được chỉ định. Nếu host có nhiều hơn một CPU thì cpu đầu tiên sẽ được đánh số bắt đầu từ 0. ví dụ --cpuset-cpus=0-2,5 thì container được sử dụng tài nguyên của cpu thứ 1,2,3 và 6 trên host
--cpu-shares Set this flag to a value greater or less than the default of 1024 to increase or reduce the container’s weight, and give it access to a greater or lesser proportion of the host machine’s CPU cycles. This is only enforced when CPU cycles are constrained. When plenty of CPU cycles are available, all containers use as much CPU as they need. In that way, this is a soft limit. --cpu-shares does not prevent containers from being scheduled in swarm mode. It prioritizes container CPU resources for the available CPU cycles. It does not guarantee or reserve any specific CPU access.

Nguồn tài liệu: https://github.com/TrongTan124/Timhieu-Docker/blob/master/docs/docker-canban/3.2.Cgroups.md https://docs.docker.com/config/containers/resource_constraints/

Tài liệu tham khảo thêm: