45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
|
# Resource limits
|
||
|
|
||
|
You can limit the amount of CPU and/or memory resources that a container can use.
|
||
|
|
||
|
## CPU
|
||
|
|
||
|
| Option | Description |
|
||
|
|--------|-------------|
|
||
|
| `--cpus` | Set number of CPUs thee container can use |
|
||
|
| `--cpu-period` | Limits the length of time it can schedule the CPU before being throttled (used alongside `--cpu-quota`) |
|
||
|
| `--cpu-quota` | The throttling setting activated when the CPU is scheduled longer than `--cpu-period` |
|
||
|
| `--cpuset-cpus` | Limit the container to specific CPUs or cores (e.g. 0-3, 0,1) |
|
||
|
| `--cpu-shares` | The number of relative shares of the CPU the container can use (default 1024) |
|
||
|
|
||
|
## Memory
|
||
|
|
||
|
A markdown table:
|
||
|
|
||
|
| Option | Description |
|
||
|
|--------|-------------|
|
||
|
| `-m` or `--memory` | Memory limit (minimum 6m (megabytes)) |
|
||
|
| `--memory-swap` | How much swap is available - [details](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) |
|
||
|
| `--memory-swappiness` | "By default, the host kernel can swap out a percentage of anonymous pages used by a container. You can set --memory-swappiness to a value between 0 and 100, to tune this percentage" - [details]() |
|
||
|
| `--memory-reservation` | Soft limit less than `--memory` (for when there is low memory on host), *soft* limit, so usage may exceed this. |
|
||
|
| `--oom-kill-disable` | Disable OOM Killer (stops from killing container processes when out-of-memory error occurs) - Make sure to use `-m`, or host processes could be killed |
|
||
|
|
||
|
## Example
|
||
|
|
||
|
Note: `--xxxx 4` in `docker run` would be replaced with `xxxx` in `docker-compose.yml`. See below:
|
||
|
|
||
|
```yml
|
||
|
service:
|
||
|
image: nginx
|
||
|
mem_limit: 512m
|
||
|
mem_reservation: 128M
|
||
|
cpus: 0.5
|
||
|
ports:
|
||
|
- "80:80"
|
||
|
```
|
||
|
|
||
|
## See also
|
||
|
|
||
|
- [Docker documentation](https://docs.docker.com/config/containers/resource_constraints/)
|
||
|
- [Baeldung docs](https://www.baeldung.com/ops/docker-memory-limit) (includes `docker compose` examples)
|