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)

    • when memory resource limit is hit, container will be killed and rescheduled

  • Minimum free needed to schedule container (Swarm keeps track)

    • --reserve-cpu .5

    • --reserve-memory 256M

Examples

  • 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

Resource Requirements in Stack Files

version: "3.1"
services:
  database:
    image: mysql
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 1G
        reservations:
          cpus: '0.5'
          memory: 500M

Last updated

Was this helpful?