Sunday, September 17, 2023

Control group [cgroup] limit the system resources

Hello DevOps team, in this post I will be exploring the CGroup usage in docker engine.



How check CGroup in the Linux file system supporting?
To check all types of cgroups that are allowed in Linux system we can check at /sys/fs/cgroup directory

What's the default memory limit for docker containers?
Interestingly, when you don't define any control group on the memory limits, the docker engine will allocate the full memory of the VM as the maximum memory limit.

How do we impose the container memory limits?
When you run the container with the 100m upper memory limit for the tomcat image. You can see the limit value docker stats command.

Can we control of CPU load per container? How?
Yes it is possible to control the CPUs usage to container.
Control group helps us in define the limit, this can be decimal values that indicate CPU cycles - example here with 0.1

We can apply both the control group limits on the same container.

How to get the version of Cgroup
 We can get the control group version and Driver value using `docker info` command.
We can have CPU Sets for creating new containers where we can share it with the other container as well. Here is an example, container lopri can be used with --cpuset-cpus=0 and share percentage using --cpu-shares=20 for busybox image. note that when no other container is running the whole CPU % will be alloted to the single container. When we have multiple container shares then it will be distributed the CPU as per the shares defined.
--cpu-shares int option will be used to define the CPU shares (relative weight) 

 --cpuset-cpus string option will be used for CPUs in which to allow execution (0-3, 0,1) 

 -cpu-quota int option will be used to set the Limit CPU CFS (Completely Fair Scheduler) quota Here the CPU cfs quota can not be less than 1ms (i.e. 1000).
using --cpu-quota option container creation

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create deployment (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)