0

我们有这种情况。

我们为 Mesos 提供了 3/3 的主/从拱门。

每个套筒都是相同的,4GB RAM 和 4 核 CPU。

我们已经启动了 10 个具有 1 核 CPU 和 1GB RAM 的马拉松应用程序。我们启动了容器,但没有使用它们,因为系统说 97% 的 CPU 是空闲的。

现在,我们正在尝试启动另一个具有 3Core CPU 和 2GB RAM 的容器。

不幸的是,我们无法启动容器,根据 Mesos 日志,它说 marathon 拒绝了这个提议,但是所有从节点都没有做任何事情。Marathon 应用程序本身保持在部署状态。

如果 mesos 无法为 marathon 应用程序分配资源(如果容器没有利用资源),那么这里的 Docker 集成有什么用。

据我了解:

一旦 Marathon 应用程序接受了一个提议,即使 docker 没有使用该资源,mesos 也会认为该资源已经被应用程序使用了。但是如果容器没有使用任何资源,mesos 需要收集可用资源并分配给下一个马拉松应用程序。

而不是一旦为马拉松应用程序分配了报价,Mesos 就会从总资源中减去分配的资源。

我们没有充分利用 Mesos/Marathon 中的 Docker 功能。

让我知道任何建议和答案。

谢谢

4

2 回答 2

2

Mesos 跟踪“分配”而不是实际使用情况。如果您的应用程序没有做任何事情,这并不意味着它不会在下一刻做任何事情。这意味着,如果您的应用程序请求 1 个 CPU,则该 CPU 将保留给应用程序。

现在,如果您不想精确估计您的应用程序正在使用的资源,您可能需要查看Mesos 中的超额订阅。但您必须记住,一旦应用程序请求了超额订阅的资源,这些资源已分配给这些资源,使用超额订阅资源的应用程序可能会被终止。

于 2015-08-24T18:56:54.133 回答
1

Mesos/Marathon 实际上考虑分配的 10*(1GB + 1CPU),因为这是您的应用程序允许使用的最大值。所以是的,你的理解是正确的。

在我看来,你至少有 2 个选择

  1. 为您的任务分配更少的资源。
  2. 实际上有一个有趣的新功能似乎适合您的用例:超额订阅,它基本上试图利用分配的资源和实际使用的资源之间的差异。
于 2015-08-24T19:02:45.100 回答