Я запускаю свое приложение в качестве контейнера докеров как в 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?
Теперь я пытаюсь понять ниже вещи
Как именно работают эти ограничения ресурсов?
Что происходит, когда контейнер превышает эти значения?