You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Vinod Kone (JIRA)" <ji...@apache.org> on 2015/10/30 18:10:27 UTC

[jira] [Commented] (MESOS-1718) Command executor can overcommit the slave.

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

Vinod Kone commented on MESOS-1718:
-----------------------------------

As [~idownes] mentioned in MESOS-2845, I don't follow your suggestion. We already have a command line executor (mesos-executor) that we use to launch command tasks. The issue is that users do not explicitly specify the command executor's information (resources, path to the executor etc). Since an executor's cpu/mem resources cannot be 0, the slave tacks on min cpus and min mem which causes the overcommit.

One option would be to make the master know about the command executor. Currently it is totally oblivious to the presence of command executor. The tricky part though is that the master doesn't know about the path of the command line executor on each slave (it could very well be different on each slave based on the --launcher-dir flag). Maybe the slave can inform the master about the command executor's path (or the whole info) during registration and master can then properly setup the TaskInfo and its ExecutorInfo. This would also likely simplify the slave's logic quite a bit.

> Command executor can overcommit the slave.
> ------------------------------------------
>
>                 Key: MESOS-1718
>                 URL: https://issues.apache.org/jira/browse/MESOS-1718
>             Project: Mesos
>          Issue Type: Bug
>          Components: slave
>            Reporter: Benjamin Mahler
>            Assignee: Ian Downes
>
> Currently we give a small amount of resources to the command executor, in addition to resources used by the command task:
> https://github.com/apache/mesos/blob/0.20.0-rc1/src/slave/slave.cpp#L2448
> {code: title=}
> ExecutorInfo Slave::getExecutorInfo(
>     const FrameworkID& frameworkId,
>     const TaskInfo& task)
> {
>   ...
>     // Add an allowance for the command executor. This does lead to a
>     // small overcommit of resources.
>     executor.mutable_resources()->MergeFrom(
>         Resources::parse(
>           "cpus:" + stringify(DEFAULT_EXECUTOR_CPUS) + ";" +
>           "mem:" + stringify(DEFAULT_EXECUTOR_MEM.megabytes())).get());
>   ...
> }
> {code}
> This leads to an overcommit of the slave. Ideally, for command tasks we can "transfer" all of the task resources to the executor at the slave / isolation level.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)