Использование ресурсов в Dcoker Swarm и Mesos - PullRequest
0 голосов
/ 28 ноября 2018

Я запускаю свое приложение в качестве Docker-контейнера как в Docker Swarm UCP (с помощью файла compose.yml), так и в Mesos (с помощью файла marathon.json).

Я добавил ограничения ресурсов воба файла.

compose.yml:

resources:
  limits:
    cpus: '0.50'
    memory: 50M
  reservations:
    cpus: '0.25'
    memory: 20M

marathon.json:

"cpus": 0.50,
"mem": 128.0,
"disk": 5.0

Я обнаружил, что память - это жесткий предел, а процессор - этомягкий предел.т.е. предел процессора только для веса и приоритета.Если процессор mesos равен 1, и если запущено два приложения, одно с 0,4 процессором, а другое с 0,6 процессора, то первое приложение получит 40% циклов процессора, а второе приложение получит 60% циклов процессора.

Тогда в чем здесь использование лимита и резервирования в файле compose.yml?

Теперь я пытаюсь понять следующие вещи

1) Как эти ограничения ресурса работают точно

2) Что происходит, когда контейнер превышает эти значения.

1 Ответ

0 голосов
/ 28 ноября 2018

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

limits означает, что когда процесс в контейнере достигаетэтот предел и пытается выделить больше, он будет насильственно убит.

...