Ok so it seems better to keep cpu isolator and use little cpu share.
btw, when trying to create a mesos task using Marathon with cpu=0.0, i get the following errors: [2015-03-11 17:05:48,395] INFO Received status update for task test-app.7b6ad5d9-c808-11e4-946b-56847afe9799: *TASK_LOST (Task uses invalid resources: cpus(*):0)* (mesosphere.marathon.MarathonScheduler:148) [2015-03-11 17:05:48,402] INFO Task test-app.7b6ad5d9-c808-11e4-946b-56847afe9799 expunged and removed from TaskTracker (mesosphere.marathon.tasks.TaskTracker:107) so i guess this is not possible. 2015-03-11 17:05 GMT+01:00 Ian Downes <[email protected]>: > Sorry, I meant that no cpu isolator only means no isolation. > > *The allocator* *does enforce a non-zero cpu allocation*, specifically > see MIN_CPUS defined in src/master/constants.cpp to be 0.01 and used by the > allocator: > > HierarchicalAllocatorProcess<RoleSorter, FrameworkSorter>::*allocatable*( > const Resources& resources) > { > Option<double> cpus = resources.cpus(); > Option<Bytes> mem = resources.mem(); > > return (*cpus.isSome() && cpus.get() >= MIN_CPUS*) || > (mem.isSome() && mem.get() >= MIN_MEM); > } > > On Wed, Mar 11, 2015 at 8:54 AM, Connor Doyle <[email protected]> > wrote: > >> If you don't care at all about accounting usage of that resource then you >> should be able to set it to 0.0. As Ian mentioned, this won't be enforced >> with the cpu isolator disabled. >> -- >> Connor >> >> On Mar 11, 2015, at 08:43, 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 >>>>> >>>> >>>> >>> >> >

