I may be wrong in this, but it seems as though the ideal solution for this
would be to avoid using the cpu isolator, but allocate MIN_CPUS cpus to
your tasks. That way you can avoid having the isolator give you 1/100th of
a CPU/sec of CPU time, while still allowing yourself 100 tasks per CPU
resource.

Though I could imagine the resource fragmentation clashing with other
processes!

On Wed, Mar 11, 2015 at 11:43 AM Ian Downes <[email protected]> wrote:

> The --isolation flag for the slave determines how resources are
> *isolated*, i.e., by not specifying any cpu isolator there will be no
> isolation between executors for cpu usage; the Linux scheduler will try to
> balance their execution.
>
> Cpu and memory are considered required resources for executors and I
> believe the master enforces this.
>
> What are behavior are you trying to achieve? If your jobs don't require
> much cpu then can you not just set a small value, like 0.25 cpu?
>
> On Wed, Mar 11, 2015 at 7:20 AM, Geoffroy Jabouley <
> [email protected]> wrote:
>
>> Hello
>>
>> As cpu relatives shares are *not very* relevant in our heterogenous
>> cluster, we would like to get rid of CPU resources management and only use
>> MEM resources for our cluster and tasks allocation.
>>
>> Even when modifying the isolation flag of our slave to
>> "--isolation=cgroups/mem", we see these in the logs:
>>
>> *from the slave, at startup:*
>> I0311 15:09:55.006750 50906 slave.cpp:289] Slave resources:
>> ports(*):[31000-32000, 80-443]; *cpus(*):2*; mem(*):1979; disk(*):22974
>>
>> *from the master:*
>> I0311 15:15:16.764714 50884 hierarchical_allocator_process.hpp:563]
>> Recovered ports(*):[31000-32000, 80-443]; *cpus(*):2*; mem(*):1979;
>> disk(*):22974 (total allocatable: ports(*):[31000-32000, 80-443];
>> *cpus(*):2*; mem(*):1979; disk(*):22974) on slave
>> 20150311-150951-3982541578-5050-50860-S0 from framework
>> 20150311-150951-3982541578-5050-50860-0000
>>
>> And mesos master UI is showing both CPU and MEM resources status.
>>
>>
>>
>> Btw, we are using Marathon and Jenkins frameworks to start our mesos
>> tasks, and the "cpus" field seems mandatory (set to 1.0 by default). So i
>> guess you cannot easily bypass cpu resources allocation...
>>
>>
>> Any idea?
>> Regards
>>
>> 2015-02-19 15:15 GMT+01:00 Ryan Thomas <[email protected]>:
>>
>>> Hey Don,
>>>
>>> Have you tried only setting the 'cgroups/mem' isolation flag on the
>>> slave and not the cpu one?
>>>
>>> http://mesosphere.com/docs/reference/mesos-slave/
>>>
>>>
>>> ryan
>>>
>>> On 19 February 2015 at 14:13, Donald Laidlaw <[email protected]> wrote:
>>>
>>>> I am using Mesos 0.21.1 with Marathon 0.8.0 and running everything in
>>>> docker containers.
>>>>
>>>> Is there a way to have mesos ignore the cpu relative shares? That is,
>>>> not limit the docker container CPU at all when it runs. I would still want
>>>> to have the Memory resource limitation, but would rather just let the linux
>>>> system under the containers schedule all the CPU.
>>>>
>>>> This would allow us to just allocate tasks to mesos slaves based on
>>>> available memory only, and to let those tasks get whatever CPU they could
>>>> when they needed it. This is desireable where there can be lots of relative
>>>> high memory tasks that have very low CPU requirements. Especially if we do
>>>> not know the capabilities of the slave machines with regards to CPU. Some
>>>> of them may have fast CPU's, some slow, so it is hard to pick a relative
>>>> number for that slave.
>>>>
>>>> Thanks,
>>>>
>>>> Don Laidlaw
>>>>
>>>
>>>
>>
>

Reply via email to