mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James DeFelice (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MESOS-8342) 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`
Date Mon, 18 Dec 2017 18:02:00 GMT

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

James DeFelice updated MESOS-8342:
----------------------------------
    Labels: mesosphere  (was: )

> 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
>              Labels: mesosphere
>
> 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)

Mime
View raw message