Docker не балансирует CPU между контейнерами автоматически: если одному контейнеру нужно больше циклов, он их заберёт, пока не заданы ограничения. Это может замедлить другие контейнеры или сделать работу системы нестабильной по ощущениям
Docker предоставляет два основных механизма для контроля CPU:
--cpus – задаёт жёсткий лимит CPU (например, --cpus="0.5" позволяет контейнеру использовать не более 50% одного ядра).--cpu-shares – задаёт относительный вес, а не жёсткий лимит. Контейнеры с более высоким значением получают больше CPU только когда несколько контейнеров конкурируют за ресурсы.Это соответствует модели планировщика Docker:
cpu_shares влияет на приоритет, а cpus задаёт фактический потолок.Без этих параметров один загруженный контейнер может занять столько CPU, сколько ему позволит хост.
В реальных нагрузках такие ограничения делают работу контейнеров более предсказуемой и защищают критичные сервисы, работающие на той же машине.
👉 DevOps Portal
