Apache Mesos 是否限制资源或隔离资源?

Apache Mesos 是否限制资源或隔离资源?

换句话说,Apache Mesos内部或docker资源隔离机制起作用吗?

如果启动的应用程序 A 需要 40% 的 CPU 资源,而应用程序 B 需要 61% - 那么 B 应用程序就无法启动,即使 A 应用程序实际上只占用 10% 的 CPU 资源?

答案1

B 应用程序无法启动,即使 A 应用程序实际上占用了 10% 的 CPU 负载?

是的,因为否则应用程序 A 和应用程序 B 都会受到影响。假设 A 使用了 40% 的 CPU,应用程序 B,即使声明它需要 61% 的 CPU,也只能使用最多 60%。反之亦然(B 使用 61%,而 A 最多只能使用 39%)。

所以一般来说,资源不会超额预订。这是在资源分配阶段实现的。

仅供参考,mesos 如何启动任务(tasks是 mesos 术语,而不是apps):

启动任务

在mesos中,任务是由框架发起的。

假设您有一个配备 1 个 CPU 和 1GB RAM 的 mesos 从属设备。

  • Mesos master 会询问你的框架:我为你提供 1 个 CPU 和 1GB RAM,你想用它启动一个任务吗?对于你的情况,框架会回复 mesos master:“是的,我想用 0.4cpus 和 0.5GB RAM 启动一个任务 A,使用这个 docker 镜像并运行这个命令...”。

现在还剩下0.6个CPU,但是任务B需要0.61个CPU,所以框架无法启动任务B。

不要将其与资源隔离混淆,资源隔离是为了保证任务进程不能使用超过其分配的 CPU(和/或 RAM)份额。

资源隔离

Mesos 通过使用cgroupsMesos也支持以docker容器的方式启动任务,但是docker容器的资源隔离也是使用cgroups。

相关内容