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

Klaus Ma commented on MESOS-1718:
---------------------------------

re reuse {{TaskInfo::CommandInfo}}: I'm thinking to only use 
{{TaskInfo::ExecutorInfo}} to launch task in the future; considering the 
backward compatibility, add {{ExecutorInfo::task_command}} without touching 
{{TaskInfo::CommandInfo}}. For this JIRA, I'm OK to reuse 
{{TaskInfo::CommandInfo}} and relax the constraint on {{TaskInfo::CommandInfo}} 
and {{TaskInfo::ExecutorInfo}}.

re filling {{ExecutorInfo::CommandInfo}} in slave: good point :). I used  to 
avoid persist those info (e.g. launch_dir); but after thinking more about it, 
mybe we did not need to persist them; slave will report it when re-register it.

For the backwards compatibility, for now, most cases are passed with the draft 
RR without interface changed. The major issue is how do we define command line 
executor's resources, as framework did not assign resources to it. Currently, I 
cut resources from task (e.g. 1 CPU cli will use 0.9 CPU for tasks and 0.1 for 
executor); there maybe two offers to return 1 CPU instead of one, the previous 
behavior is one offer; and task resources in metrics is also changed, for 
example, Marathon's UI will show 0.9 CPU when launch service with 1 CPU.

> 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