Использование ресурсов в Docker Swarm и Mesos

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

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

compose.yml:

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

марафон.json:

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

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

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

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

  1. Как именно работают эти ограничения ресурсов?

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


person Anil Kumar R    schedule 28.11.2018    source источник


Ответы (1)


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

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

person Constantin Galbenu    schedule 28.11.2018