我们有这种情况。
我们为Mesos提供了3/3主/从弓。
每个套管都是相同的,4GB RAM和4个核心CPU。
我们已经开始使用1核CPU和1GB RAM的10个马拉松应用程序。我们启动了容器,但没有使用它们,根据系统它说97%的CPU是免费的。
现在,我们正在尝试使用3Core CPU和2GB RAM启动另一个容器。
不幸的是,我们无法启动容器,根据Mesos日志,它说马拉松已经拒绝了提议,但是所有从属节点都没有做任何事情。 Marathon应用程序本身就处于部署状态。
如果mesos无法为马拉松应用程序分配资源(如果容器没有使用资源),那么Docker集成的用途是什么。
根据我的理解:
一旦马拉松应用程序接受了一个提议,即使docker没有使用该资源,mesos也会认为应用程序已经在使用资源。但是如果容器没有使用任何资源,则mesos需要收集可用资源并分配给下一个马拉松应用程序。
而不是一旦将报价分配给马拉松App,Mesos就会从总资源中减去分配的资源。
我们没有充分利用Mesos / Marathon中的Docker功能。
让我知道任何建议和答案。
谢谢
答案 0 :(得分:2)
Mesos跟踪“分配”而不是实际使用情况。如果您的应用没有做任何事情,并不意味着它不会在下一刻做任何事情。这意味着,如果您的应用请求1个CPU,则此CPU将保留给该应用。
现在,如果您不想精确估算应用所使用的资源,您可能需要查看oversubscription in Mesos。但是,您必须记住,一旦应用程序请求超额订阅的资源(已为其分配了这些资源),使用超额订阅资源的应用程序可能会被终止。
答案 1 :(得分:1)
Mesos / Marathon实际上考虑分配的10 *(1GB + 1CPU),因为这是您的应用程序允许使用的最大值。 所以是的,你的理解是正确的。
在我看来,你至少有两个选择