масштабирование докеров с разными процессорами
Как я могу масштабировать услугу, но применять другую
cpuset
на каждом экземпляре с docker-compose?
Например: у меня 4 процессора, мне нужно 4 экземпляра, каждый из которых использует 1 уникальный процессор.
1 ответ
Какую версию docker-compose вы используете? Я спрашиваю, потому что выполнить то, что вы хотите, возможно только с docker-compose v2.x или docker-swarm, как вы можете видеть ниже.
вы можете проверить дополнительную информацию здесь, в докере.
предполагая, что вы используете docker-compose 2.4, вы можете определить подобную службу в своем `docker-compose.yaml
version: '2.4'
services:
redis:
image: redis:1.0.0
restart: always
environment:
- REDIS_PASSWORD=1234
cpu_count: 1
mem_limit: 200m
где
cpu_count
- это количество ядер процессора, которое вы хотите использовать в службе, и
mem_limit
это предел памяти, который может использовать ваша служба.
Чтобы определить количество реплик, вы должны запустить:
docker-compose up --scale redis=2
где
redis
имя службы в docker-compose и
2
это желаемое количество реплик. Таким образом, оба контейнера будут раскручиваться с 1 ядром ЦП и 200 м памяти.
Чтобы проверить потребление ресурсов контейнера, вы можете запустить
docker stats
Источник:https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources
https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources