关于Docker的Mesos和Marathon限制

我们有这种情况。

Mesos有3/3主/从拱。

每个袖子是相同的,4GB RAM和4个核心CPU。

我们已经启动了10个CPU和1GB RAM的马拉松应用程序。 我们启动容器,但没有使用它们,根据系统说,97%的CPU是免费的。

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

不幸的是,根据Mesos日志,我们无法启动容器,这是说马拉松已经降低了报价,但是所有的从节点都没有做任何事情。 马拉松应用程序停留在部署状态本身。

如果mesos无法为马拉松应用程序分配资源(如果容器没有使用资源),那么Doc​​ker集成在这里有什么用处。

根据我的理解:

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

一旦将报价分配给马拉松应用程序,Mesos将从总资源中减去分配的资源。

我们没有充分利用Mesos / Marathon中的Dockerfunction。

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

谢谢

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

现在,如果你不想精确估计你的应用程序正在使用的资源,你可能想看看Mesos的超额订阅 。 但是,您必须记住,一旦应用程序请求超额预订资源,为其分配了资源,则使用超额预订资源的应用程序可能会被终止。

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

在我看来,你至less有两个select

  1. 为您的任务分配更less的资源。
  2. 实际上有一个有趣的新function似乎适合您的使用情况: 超额订阅基本上试图利用分配资源和实际使用资源之间的差异。