digital-garden/dev/devops/docker/Ограничение ресурсов в docker-compose.md
Struchkov Mark 0c10c08403
All checks were successful
continuous-integration/drone/push Build is passing
Полезные заметки про docker-compose
2024-10-30 16:53:48 +03:00

2.9 KiB
Raw Blame History

aliases tags date
maturity/🌱
2024-10-30

Используя ограничения на CPU и RAM, вы можете проводить локальное нагрузочное тестирование и наблюдать, как сервис будет работать в условиях, близких к реальным.

Синтаксис ограничения ресурсов в файле docker-compose.yml может отличаться в зависимости от версии файла, указанной в первой строке. Вот пример для версии 3.7:

version: 3.7

services:
  my-service:
    ...
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: '256M'

Важно помнить, что ограничение памяти контейнера не означает автоматического ограничения памяти для JVM. По умолчанию JVM использует не более 1/4 от доступной памяти системы, но не менее 128 MB. Таким образом, если контейнеру выделено 512 MB памяти, Java будет использовать только 128 MB, что приведет к неэффективному использованию оставшихся ресурсов. Чтобы этого избежать, следует явно задавать объем доступной памяти для JVM.

Кроме того, в Docker можно использовать не только limits для задания максимального количества ресурсов, но и reservations для задания минимальных гарантированных ресурсов, которые будут выделены для контейнера. Например:

services:
  my-service:
    ...
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: '256M'
        reservations:
          cpus: '1'
          memory: '128M'

Параметры reservations позволяют гарантировать минимально необходимое количество ресурсов для стабильной работы приложения, что особенно полезно при работе в условиях ограниченных вычислительных мощностей.


Мета информация

Область:: ../../../meta/zero/00 Docker Compose Родитель:: Источник:: Создана:: 2024-10-30 Автор::

Дополнительные материалы

Дочерние заметки