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

