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