我正在试验Mesos +马拉松,并通过创建一个由shell脚本组成的小“应用程序”开始简单,每5秒无限地记录一次消息。当我提供该应用程序时,我可以分配各种内存和CPU资源,这就引出了我的问题:
如果马拉松直接生成一个shell脚本,那么它如何限制脚本资源的使用?该脚本可以执行并启动任何操作来消耗所有可用资源。
我理解Docker或其他隔离机制将限制进程的功能,但我没有(显式)配置它。它是否在不需要显式配置容器的情况下动态创建某种容器?我正在OS X上进行测试。
发布于 2014-12-19 09:21:50
Mesos只支持Mac上的"Posix“隔离,这实际上更多地用于监视而不是实际的资源限制,因此在Mac上测试Mesos将无法演示真正的资源隔离。
如果在Linux机器/VM上测试Mesos,则可以设置:
--isolation='cgroups/cpu,cgroups/mem'启动每个从服务器以启用cgroup隔离时,这将创建一个容器并在其中运行脚本/进程。当容器/进程超过其cpu共享(不是固定cpu )时,cgroup隔离器将限制cpu利用率,如果进程超过其内存限制,则会杀死进程(销毁容器)。
还请注意,Mesos 0.21现在支持网络隔离器和可插拔隔离器模块,以便您可以构建自己的gpu隔离器、缓存隔离器等。
如果要启用码头容器(0.20+),只需设置:
--containerizers='docker,mesos'启动奴隶时,您可以启动任意的停靠映像并在其中运行命令。Docker仍然在下面使用cgroup,所以cgroup隔离器与您在Mesos上运行的Docker映像完全兼容。
如果您使用的是中间层包,可以通过在/etc/mesos-slave中创建配置文件将选项传递给Mesos从站,例如:
echo 'docker,mesos' > /etc/mesos-slave/containerizershttps://stackoverflow.com/questions/27560116
复制相似问题