2015-08-17 4 views
1

Мы создали контейнер wordpress, используя mesos-Marathon, мы выделили 0,1 процессор и 64 Мб оперативной памяти.Пределы использования памяти Mesos/Marathon для Docker

Когда мы проверяем статистику докеров, мы наблюдаем, что распределения памяти мы отличались тем, что мы выделяем в марафоне, Есть ли способ обновить ограничение использования памяти для контейнера Docker, можем ли мы установить лимиты по умолчанию для всех контейнеров на уровне демона. (По уровню демонов Mesos/Docker)

Мы пытаемся выполнить загрузку теста на сайте WordPress, контейнер был убит всего за 500 соединений, мы пытаемся выполнить нагрузочный тест с использованием JMeter.

Заранее спасибо

ответ

1

Докер не имеет опции памяти для вашего Docker демона еще. Что касается того, что ограничение памяти по умолчанию для контейнеров вы можете только установить ограничение во время выполнения (не после выполнения) со следующими параметрами:

-m, --memory=""    Memory limit 
--memory-swap=""    Total memory (memory + swap), '-1' to disable swap 

В соответствии с this

Я также вижу, что есть еще в выпуске открытого here. Убедитесь, что вы используете Mesos (0.22.1) или новее.

Как насчет создания контейнеров с чем-то похожим на этот запрос марафона?

curl -X POST -H "Content-Type: application/json" http://<marathon-server>:8080/v2/apps [email protected] 

helloworld.json: 
{ 
    "id": "helloworld", 
    "container": { 
     "docker": { 
      "image": "ubuntu:14.04" 
     }, 
     "type": "DOCKER", 
     "volumes": [] 
    }, 
    "cmd": "while true; do echo hello world; sleep 1; done", 
    "cpus": 0.1, 
    "mem": 96.0, # Update the memory here. 
    "instances": 1 
} 
+0

Привет Рикардо, мы можем сделать это, но у нас была проблема с Mesos, только предложение выделяется любому matathon приложение (Docker контейнер), даже контейнер не использует эти выделенные ресурсы, Mesos считает, как и предложение уже выделено. Например, у нас есть 3 мезо-раба, все они идентичны, имея 4 ядра и 4 ГБ оперативной памяти, у нас 20 приложений для марафона, все они одинаковы, имеют 0,5 и 0,5 ГБ. это означает, что 10 ядер и 10 ГБ были выделены (даже они используются или нет), если я попытаюсь запустить приложение Marathon с 3cores и 3GB RAM, Mesos выделяет ресурсы, но приложение застряло в Deployments. –

+0

Как мы можем добавить «memory.limit_in_bytes», «memory.max_usage_in_bytes» навсегда, чтобы, если я вставил контейнер, он может наследовать эти значения и запустить контейнер. –

+0

Чтобы использовать пропуски распределения в Мезосе, вы можете попробовать переподписку (http://mesos.apache.org/documentation/latest/oversubscription/). – rukletsov