[ 
https://issues.apache.org/jira/browse/MESOS-8342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vishnu Mohan updated MESOS-8342:
--------------------------------
    Component/s: docker

> Make the Docker containerizer exhibit the same behavior as Mesos/UCR which 
> sets `memory.memsw.limit_in_bytes` to be equal to `memory.limit_in_bytes` 
> when `MESOS_CGROUPS_LIMIT_SWAP=true`
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MESOS-8342
>                 URL: https://issues.apache.org/jira/browse/MESOS-8342
>             Project: Mesos
>          Issue Type: Improvement
>          Components: containerization, docker
>    Affects Versions: 1.4.1
>            Reporter: Vishnu Mohan
>
> Please add support for the functionality afforded by the {{\--memory-swap}} 
> and {{\--memory-swappiness}} {{docker run}} options to the Docker 
> Containerizer: 
> https://github.com/apache/mesos/blob/1.4.x/src/docker/docker.hpp#L193-L194
> ATM the Docker containerizer does not honor 
> {{MESOS_CGROUPS_LIMIT_SWAP=true}}, and depending on the OS {{swappiness}} 
> configuration, the Docker Engine will (typically) set 
> {{memory.memsw.limit_in_bytes}} to twice the value of 
> {{memory.limit_in_bytes}}
> This means that all Docker containers can/will swap up to 2x their allocation 
> before being OOM-killed by the Docker Engine which can cause a huge 
> performance problem.
> The only real workaround, for now, is to ensure that all apps that are 
> launched by the Docker containerizer (at least those that are launched via 
> Marathon) also pass {{\--memory-swap=<memory_allocation>}} and/or pass 
> {{\--memory-swappiness=0}}, depending on the version of the Docker Engine, 
> ({{docker run --help}}), as arbitrary Docker params, assuming the scheduler 
> supports it, which is operationally cumbersome.
> Ideally, the Docker containerizer would exhibit the same behavior as 
> Mesos/UCR which sets {{memory.memsw.limit_in_bytes}} to be equal to 
> {{memory.limit_in_bytes}} when {{MESOS_CGROUPS_LIMIT_SWAP=true}}
> Ref: 
> https://docs.docker.com/engine/admin/resource_constraints/#prevent-a-container-from-using-swap



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to