Return-Path: X-Original-To: apmail-incubator-mesos-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-mesos-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E9B6DF7A6 for ; Fri, 3 May 2013 02:12:16 +0000 (UTC) Received: (qmail 64580 invoked by uid 500); 3 May 2013 02:12:16 -0000 Delivered-To: apmail-incubator-mesos-dev-archive@incubator.apache.org Received: (qmail 64552 invoked by uid 500); 3 May 2013 02:12:16 -0000 Mailing-List: contact mesos-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mesos-dev@incubator.apache.org Delivered-To: mailing list mesos-dev@incubator.apache.org Received: (qmail 64544 invoked by uid 99); 3 May 2013 02:12:16 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 May 2013 02:12:16 +0000 Date: Fri, 3 May 2013 02:12:16 +0000 (UTC) From: "Benjamin Mahler (JIRA)" To: mesos-dev@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (MESOS-458) Current cgroups layout does not ensure the slave gets a fair share of the CPU resources. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MESOS-458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Mahler updated MESOS-458: ---------------------------------- Description: We currently have the following layout when there is no system cgroup present on a machine: /cgroup: (system processes, including the mesos-slave) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares This does not ensure the slave gets a fair share of the cpu, especially when there is load inside the root cgroup. This is because the slave is contending with other processes inside the root cgroup. If the administrators set up a system cgroup, the layout looks as follows: /cgroup: (no processes) /cgroup/system: (system processes, including the mesos-slave) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares This still does not ensure the slave gets a fair share for the same reasons. However, if we create a cgroup to hold only the slave: /cgroup: (no processes) /cgroup/system: (system processes) 1024 shares /cgroup/mesos-slave: (mesos-slave process) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares With the above configuration, the slave will get 1 cpu, system processes will get 1 cpu, and the executors will get the rest. was: We currently have the following layout when there is no system cgroup present on a machine: [root cgroup] (system processes, including the mesos-slave) 1024 shares | [mesos] (no processes) 1024 shares | | [executor1] ... [executorN] That is: /cgroup: (system processes, including the mesos-slave) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares This does not ensure the slave gets a fair share of the cpu, especially when there is load inside the root cgroup. This is because the slave is contending with other processes inside the root cgroup. If the administrators set up a system cgroup, the layout looks as follows: [root cgroup] (no processes, including the mesos-slave) 1024 shares by default | | [mesos] (no processes) 1024 shares | | | | | | [system] (system processes, including the mesos-slave) 1024 shares | | executor1 ... executorN That is: /cgroup: (no processes) /cgroup/system: (system processes, including the mesos-slave) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares This still does not ensure the slave gets a fair share for the same reasons. However, if we create a cgroup to hold only the slave: [root cgroup] (no processes, including the mesos-slave) 1024 shares by default | | | [mesos] (no processes) 1024 shares | mesos-slave (just the slave) 1024 shares | | | | | 1024 shares [system] (system processes) 1024 shares | | executor1 ... executorN That is: /cgroup: (no processes) /cgroup/system: (system processes) 1024 shares /cgroup/mesos-slave: (mesos-slave process) 1024 shares /cgroup/mesos: (no processes) 1024 shares /cgroup/mesos/executor1: X shares ... /cgroup/mesos/executorN: X shares With the above configuration, the slave will get 1 cpu, system processes will get 1 cpu, and the executors will get the rest. > Current cgroups layout does not ensure the slave gets a fair share of the CPU resources. > ---------------------------------------------------------------------------------------- > > Key: MESOS-458 > URL: https://issues.apache.org/jira/browse/MESOS-458 > Project: Mesos > Issue Type: Improvement > Reporter: Benjamin Mahler > > We currently have the following layout when there is no system cgroup present on a machine: > /cgroup: (system processes, including the mesos-slave) 1024 shares > /cgroup/mesos: (no processes) 1024 shares > /cgroup/mesos/executor1: X shares > ... > /cgroup/mesos/executorN: X shares > This does not ensure the slave gets a fair share of the cpu, especially when there is load inside the root cgroup. This is because the slave is contending with other processes inside the root cgroup. If the administrators set up a system cgroup, the layout looks as follows: > /cgroup: (no processes) > /cgroup/system: (system processes, including the mesos-slave) 1024 shares > /cgroup/mesos: (no processes) 1024 shares > /cgroup/mesos/executor1: X shares > ... > /cgroup/mesos/executorN: X shares > This still does not ensure the slave gets a fair share for the same reasons. > However, if we create a cgroup to hold only the slave: > /cgroup: (no processes) > /cgroup/system: (system processes) 1024 shares > /cgroup/mesos-slave: (mesos-slave process) 1024 shares > /cgroup/mesos: (no processes) 1024 shares > /cgroup/mesos/executor1: X shares > ... > /cgroup/mesos/executorN: X shares > With the above configuration, the slave will get 1 cpu, system processes will get 1 cpu, and the executors will get the rest. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira