[
https://issues.apache.org/jira/browse/MESOS-1718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15043933#comment-15043933
]
Klaus Ma commented on MESOS-1718:
---------------------------------
Update the code diff as following:
1. Move {{getExecutorInfo}} from slave to master
2. Cut resources from task for command executor
3. Update unit test cases
There's some behaviour changed:
1. For command tasks, framework may need two offer to retrieve tasks'
resources: executor offer & task offer. For example, one command task need 1
CPU to run, master will use 0.1 CPU for executor & 0.9 CPU for tasks. When the
task's killed, the two resources (0.1 CPU & 0.9 CPU) may send to framework in
two offers.
2. There will be executor ID in master metrics
Implementation detail:
1. Introduce {{task_command}} into ExecutorInfo ({{ExecutorInfo::command}} is
considered to by executor_command)
2. In master, build executor info if it's a command task: create executor info
& record task command in {{ExecutorInfo::task_command}}. NOTE: only build
ExecutorInfo with task_command, the executor_command should be built in slave
3. In docker/command executor, update code to get
{{ExecutorInfo::task_command}} to run
If any comments, please let me know. I'll update the RR accordingly.
> 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)