56 lines
2.9 KiB
Markdown
56 lines
2.9 KiB
Markdown
|
---
|
|||
|
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]]
|
|||
|
**Автор**::
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
|