You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Meng Zhu (JIRA)" <ji...@apache.org> on 2018/04/30 21:14:00 UTC

[jira] [Commented] (MESOS-8840) `cpu.cfs_quota_us` may be accidentally set for command task using docker during agent recovery.

    [ https://issues.apache.org/jira/browse/MESOS-8840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16459062#comment-16459062 ] 

Meng Zhu commented on MESOS-8840:
---------------------------------

We probably also want to audit `create` and `update` to see if there are any other discrepancies between the two that would lead to accidental changes in cgroup settings.

> `cpu.cfs_quota_us` may be accidentally set for command task using docker during agent recovery.
> -----------------------------------------------------------------------------------------------
>
>                 Key: MESOS-8840
>                 URL: https://issues.apache.org/jira/browse/MESOS-8840
>             Project: Mesos
>          Issue Type: Bug
>          Components: containerization
>    Affects Versions: 1.2.0, 1.2.1, 1.2.2, 1.2.3
>            Reporter: Meng Zhu
>            Priority: Critical
>
> Prior to Mesos 1.3, docker containerizer does not honor the flag `–cgroups_enable_cfs` for command task when creating the container, a patch ported this flag to docker command executor only up to 1.3 (MESOS-6134) 
> However, docker containerizer honors the flag when updating containers:
> https://github.com/apache/mesos/blob/7559c9352c78912526820f6222ed2b17ad3b19cf/src/slave/containerizer/docker.cpp#L1726
> For non-command tasks, docker containerizer always `update` the resources during launch:
> https://github.com/apache/mesos/blob/7559c9352c78912526820f6222ed2b17ad3b19cf/src/slave/containerizer/docker.cpp#L1325-L1330
> For command tasks, it is not the case:
> https://github.com/apache/mesos/blob/7559c9352c78912526820f6222ed2b17ad3b19cf/src/slave/containerizer/docker.cpp#L1271-L1277
> However, when recovering the executor, `update` is called for both command and non-command tasks.
> This means, for command task, the cpu cgroup cfs settings would change when a command executor is recovered. Specifically, recovered command executors will have cfs set while all other command executors will not. This may lead to a drastic change in the container resource usage depending on the system load.
> To maintain backward compatibility, we probably want to avoid setting the `cpu.cfs_quota_us` field in `update` if the field is not already set.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)