--- aliases: tags: - maturity/🌱 date: 2024-10-30 --- Используя ограничения на CPU и RAM, вы можете проводить локальное нагрузочное тестирование и наблюдать, как сервис будет работать в условиях, близких к реальным. Синтаксис ограничения ресурсов в файле docker-compose.yml может отличаться в зависимости от версии файла, указанной в первой строке. Вот пример для версии 3.7: ```yaml 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` для задания минимальных гарантированных ресурсов, которые будут выделены для контейнера. Например: ```yaml services: my-service: ... deploy: resources: limits: cpus: '2' memory: '256M' reservations: cpus: '1' memory: '128M' ``` Параметры `reservations` позволяют гарантировать минимально необходимое количество ресурсов для стабильной работы приложения, что особенно полезно при работе в условиях ограниченных вычислительных мощностей. *** ## Мета информация **Область**:: [[../../../meta/zero/00 Docker Compose|00 Docker Compose]] **Родитель**:: **Источник**:: **Создана**:: [[2024-10-30]] **Автор**:: ### Дополнительные материалы - ### Дочерние заметки