Docker的Mesos/Marathon内存使用限制

Docker的Mesos/Marathon内存使用限制,docker,containers,mesos,marathon,Docker,Containers,Mesos,Marathon,我们使用mesos Marathon创建了一个wordpress容器,我们分配了0.1 CPU和64mb RAM 当我们检查docker统计数据时,我们发现内存分配与marathon中分配的内存不同, 是否有任何方法可以更新Docker容器的内存使用限制,我们是否可以在demon级别为所有容器设置任何默认限制。(通过Mesos/Docker demon级别) 我们试着在WordPress站点上做负载测试,容器因为仅仅500个连接而被杀死,我们试着用JMeter做负载测试 提前感谢Docker尚未

我们使用mesos Marathon创建了一个wordpress容器,我们分配了0.1 CPU和64mb RAM

当我们检查docker统计数据时,我们发现内存分配与marathon中分配的内存不同, 是否有任何方法可以更新Docker容器的内存使用限制,我们是否可以在demon级别为所有容器设置任何默认限制。(通过Mesos/Docker demon级别)

我们试着在WordPress站点上做负载测试,容器因为仅仅500个连接而被杀死,我们试着用JMeter做负载测试


提前感谢

Docker尚未为您的Docker守护程序提供内存选项。至于容器的默认内存限制是什么,您只能使用以下选项在运行时(而不是在运行后)设置限制:

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

我还看到还有一个悬而未决的问题。确保您使用的是Mesos(0.22.1)或更高版本

用类似于马拉松请求的东西创建容器怎么样

curl -X POST -H "Content-Type: application/json" http://<marathon-server>:8080/v2/apps -d@helloworld.json

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
}
curl-xpost-H“内容类型:application/json”http://:8080/v2/apps-d@helloworld.json
helloworld.json:
{
“id”:“helloworld”,
“容器”:{
“码头工人”:{
“图片”:“ubuntu:14.04”
},
“类型”:“DOCKER”,
“卷”:[]
},
“cmd”:“while true;do echo hello world;sleep 1;done”,
“CPU”:0.1,
“mem”:96.0,在这里更新内存。
“实例”:1
}

Hi Ricardo,我们可以这样做,但是我们在Mesos上遇到了一个问题,一旦将优惠分配给任何matathon应用程序(Docker容器),即使容器没有使用这些分配的资源,Mesos认为优惠已经分配。例子。。我们有3个mesos从站,都是相同的,有4个内核和4GB内存,我们有20个马拉松应用程序,都是相同的,有0.5core和0.5GB。这意味着分配了10个内核和10GB(即使它们正在使用或未使用),如果我尝试为另一个Marathon应用程序配置3cores和3GB RAM,Mesos正在分配资源,但应用程序仍处于部署中。我们如何永久添加“memory.limit_in_bytes”、“memory.max_usage_in_bytes”以便在我安装容器时,它可以继承这些值并启动容器。要利用Mesos中的分配松弛,您可以尝试超额订阅()。不要认为您可以动态修改资源。尝试像提到的@rukletsov那样的超额认购