Marathon如何限制直接调用应用程序的资源?

Marathon如何限制直接调用应用程序的资源?

问题描述:

我与Mesos +马拉松试验和开始通过创建一个小“应用程序”由一个shell脚本无限循环记录消息每5秒一次的简单。当我规定,应用程序,我可以分配这使我对我的问题不同的内存和CPU资源:Marathon如何限制直接调用应用程序的资源?

如果马拉松产卵一个shell脚本直接那么它怎么能限制脚本资源使用情况有关?该脚本可以执行任何操作并消耗所有可用资源。

据我所知,码头工人或其他一些隔离机制将限制什么程序可以做,但我还没有配置这个(明确)。它是否正在创建某种容器而不需要明确配置它?我在OS X

Mesos测试只支持“Posix的”隔离在Mac上,这实在是比实际资源限制更多的监控,所以在Mac上测试Mesos将无法证明真正的资源隔离。

如果你在Linux机器上测试Mesos/VM,您可以设置:

--isolation='cgroups/cpu,cgroups/mem' 

开始每个从何时启用cgroup的隔离,这将创建一个容器并运行里面的脚本/过程。当容器/进程超过其CPU占有率(不固定的CPU)的cgroup隔离器将节流CPU利用率,而如果超过其内存限制将杀死的处理(破坏容器)。

还要注意,Mesos 0.21现在支持的网络隔离,并且可插入隔离器模块,所以你可以建立自己的GPU隔离器,隔离器缓存等

如果要启用泊坞窗containerizer(0.20+)刚刚设置:

--containerizers='docker,mesos' 

当启动从属,然后你可以启动任意码头图像和运行里面的命令。码头工人仍然使用cgroup的下方,所以cgroup的隔离完全与你Mesos运行泊坞图像兼容。

如果您使用中间层的包,你可以通过在/etc/mesos-slave创建配置文件传递选项Mesos奴隶,例如:

echo 'docker,mesos' > /etc/mesos-slave/containerizers