Docker Resource Requirements

Resource Requirements:


• docker run has many options, service create has different options
• Set at service create/update, but are controlled per-container
• Set for CPU and memory, reserving and limiting
• Maximum given to container
• --limit-cpu .5
• --limit-memory 256M
• Beware of OOME (with or without limits) 
• Minimum free needed to schedule container (Swarm keeps track)
• --reserve-cpu .5
• --reserve-memory 256M
• Reserve cpu and memory
# docker service create --reserve-memory 800M --reserve-cpu 1 mysql
• Limit cpu and memory
# docker service create --limit-memory 150M --limit-cpu .25 nginx
• Service update is the same
• Remove them with update to 0
# docker service update --limit-memory 0 --limit-cpu 0 myservice


be careful on limits of memory. if container uses more then limit, it'll crash
better then letting node OOM take down random process


RESOURCES:

https://hub.docker.com/r/shaan2212/stress/

Lets say you have three nodes, each with 1G and 1 CPU in each
docker service create --reserve-memory=800M --name 800 nginx
docker service create --reserve-memory=300M --replicas=4 --name 300 nginx
notice how none of the 2nd can run on node of the first
docker service inspect 800
remove reservation
docker service update --reserve-memory=0 800
docker service inspect 800
what happens when more reserve then you have?
docker service create --reserve-cpu=8 --name 8 nginx
what happens when we run over memory limits?
docker service create --limit-memory 100M --name 100 shaan2212/stress
docker service logs 100
docker service rm 100

No comments:

Post a Comment

Installation of Jenkins on Linux and Deployment NGINX through Jenkins

Installation of Jenkins: [root@worker1 ~]# useradd -c "jenkins user" jenkins [root@worker1 ~]# passwd jenkins Changing passw...