[ 
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)

Reply via email to