Mesos任务使用的资源多于指定的资源

时间:2016-11-02 19:43:36

标签: mesos

我尝试在具有208个核心的Mesos群集上启动具有1000个任务的框架。在调度程序中,我指定每个任务需要2个核心。但是有些任务失败了,并显示错误消息:Task uses more resources cpus(*):4; mem(*):4096; disk(*):4096 than available cpus(*):2; mem(*):2048; disk(*):2048。我还尝试在群集上动态监视资源使用情况。我注意到每个任务实际上根据信息消耗了4个核心

2016/11/02 02:25:10.073 mesos_scheduler INFO 208.0 cpu 98.0 used, 807768.0 memory 100352.0 used, 44052112.0 disk 100352.0 used, 24.0 active tasks
2016/11/02 02:25:10.574 mesos_scheduler INFO 208.0 cpu 96.0 used, 807768.0 memory 98304.0 used, 44052112.0 disk 98304.0 used, 24.0 active tasks
2016/11/02 02:25:15.301 mesos_scheduler INFO 208.0 cpu 94.0 used, 807768.0 memory 96256.0 used, 44052112.0 disk 96256.0 used, 23.0 active tasks
2016/11/02 02:25:15.803 mesos_scheduler INFO 208.0 cpu 92.0 used, 807768.0 memory 94208.0 used, 44052112.0 disk 94208.0 used, 23.0 active tasks
2016/11/02 02:25:16.728 mesos_scheduler INFO 208.0 cpu 90.0 used, 807768.0 memory 92160.0 used, 44052112.0 disk 92160.0 used, 22.0 active tasks
2016/11/02 02:25:17.229 mesos_scheduler INFO 208.0 cpu 88.0 used, 807768.0 memory 90112.0 used, 44052112.0 disk 90112.0 used, 22.0 active tasks

我写的用于指定核心数量的代码如下

 cpus = executor.resources.add()
 cpus.name = "cpus"
 cpus.type = mesos_pb2.Value.SCALAR
 cpus.scalar.value =2

我是否正确使用api?

1 个答案:

答案 0 :(得分:0)

最有可能的是,您已将2个CPU分配给executor,将2个CPU分配给task,结果总共为4个。

在Mesos中,每个task都在executor下运行。当您未指定executor时,Mesos使用一个非常轻量级的默认执行程序,占用0.01 CPU和32 MB内存。