A veces los procesos empiezan a consumir recursos; CPU, RAM, ancho de banda, o acceso a disco. Esto puede llegar a bloquear el ordenador por secuestro de recursos del sistema. Al correr los servicios dentro de los contenedores podemos de una forma sencilla limitar los recursos, o reservarlos, para que evitar que un proceso nos pueda bloquear el sistema.
unidades de medida: (no se pueden usar decimales)
2b
1024kb
2048k
300m
1gb
unidades de duración y tiempo
2.5s
10s
1m30s
2h32m
5h34m56s
# 0.000 -> unlimited
docker run --memory="4m" --cpus=0.000 my-app:latest
version: '2'
services:
SERVICE_NAME:
image: IMAGE_NAME
...
deploy:
resources:
limits:
cpus: 1
memory: 1G
reservations:
cpus: '0.25'
memory: 512M
blkio_config:
weight: 300
weight_device:
- path: /dev/sda
weight: 400
device_read_bps:
- path: /dev/sdb
rate: '12mb'
device_read_iops:
- path: /dev/sdb
rate: 120
device_write_bps:
- path: /dev/sdb
rate: '1024k'
device_write_iops:
- path: /dev/sdb
rate: 30
https://gist.githubusercontent.com/i40sys/72e593ce0c5d521be3d71b3c27899363/raw/1028ddbb05df44156258a70cd6b4d007ea8ea25f/docker-compose.yml
docker run --cpus=4 --rm -it progrium/stress --cpu 12