У нас есть этот сценарий.Ограничения в мезосе и марафоне относительно докера
У нас есть 3/3 арка главного/ведомого для Мезоса.
Каждый рукав идентичен, 4 ГБ ОЗУ и 4 основных процессора.
Мы начали 10 приложений для марафона с 1core CPU и 1GB RAM. Мы начали контейнеры, но не использовали их, согласно системе, это означает, что 97% процессор свободен.
Теперь мы пытаемся запустить другой контейнер с процессором 3Core и оперативной памятью 2 ГБ.
К сожалению, мы не можем запустить контейнер, согласно журналам Mesos, он говорит, что марафон отклонил предложение, но все подчиненные узлы ничего не делают. Приложения Marathon остались в состоянии развертывания.
Если mesos не может выделять ресурсы для приложения марафона (если контейнеры не используют ресурсы), то в чем здесь заключается интеграция Docker.
Согласно моему пониманию:
После того, как предложение принято на марафонском приложении, даже если докер не использует этот ресурс, Mesos думает, как, что ресурсы уже используют приложение. Но если контейнер не использует какие-либо ресурсы, мезо нужно собрать доступные ресурсы и выделить следующее приложение для марафона.
Вместо этого, когда предложение присваивается приложению марафона, Мезос вычитает выделенные ресурсы из общих ресурсов.
Мы не полностью используем функции Docker в Mesos/Marathon.
Дайте мне знать любые предложения и ответы.
Благодарим вас
1.У нас проблема с марафоном здесь, мы используем сайты WordPress внутри контейнеров. Если мы выделяем меньше ресурсов, когда мы достигаем максимального использования ОЗУ (на основе Allocation), Container начинает использовать SWAP, этот контейнер сценария занимает много времени ответить. Мы настроили проверки работоспособности, из-за медленной реакции контейнера Marathon убивает старый контейнер и создает новый контейнер. @ js84 –
2. @rukletsov @ js84 Если мы пытаемся использовать переподписку, мы не можем создавать все приложения, используя переподписку. Они ясно упомянули, что если «Если какой-либо ресурс, используемый задачей или исполнителем, отменяется, весь контейнер обрабатывается как перезаписываемый контейнер и поэтому может быть убит или дросселирован контроллером QoS. « –
Правильно, переподписка предназначена для задач с максимальным усилием. Если я правильно понимаю ваше дело, ваши контейнеры могут использовать всю выделенную память. Если это так, вы не можете действительно улучшить использование, потому что ваши задачи в конечном итоге потребуют всех ресурсов, доступных в кластере. Имеет ли это смысл? – rukletsov