我们有这种情况。
我们有三分之三的主从拱门。
每个套筒都是相同的,4gb ram和4核CPU。
我们已经启动了10个马拉松应用程序,拥有1个核心cpu和1gb内存。我们启动了容器,但没有使用它们,根据系统的说法,97%的cpu是免费的。
现在,我们正在尝试启动另一个具有3核cpu和2gb ram的容器。
不幸的是,我们无法启动容器,根据mesos日志,它说marathon拒绝了这个提议,但是所有的从节点都没有做任何事情。马拉松应用程序本身保持部署状态。
如果mesos无法将资源分配给marathon应用程序(如果容器没有利用这些资源),那么docker集成在这里有什么用呢。
据我了解:
一旦马拉松应用程序接受了报价,即使docker没有使用该资源,mesos也会认为该应用程序已经在使用该资源。但是如果容器没有使用任何资源,mesos需要收集可用的资源并分配给下一个应用程序。
而不是一旦一个报价分配给马拉松应用程序,mesos是从总资源中减去分配的资源。
我们没有充分利用mesos/marathon中的docker功能。
让我知道任何建议和答案。
谢谢您
2条答案
按热度按时间wz3gfoph1#
mesos/marathon实际上考虑分配的10*(1gb+1cpu),因为这是允许应用程序使用的最大值。所以你的理解是正确的。
我认为你至少有两个选择
为任务分配较少的资源。
实际上,有一个有趣的新特性似乎适合您的用例:过度订阅,它基本上试图利用分配的资源和实际使用的资源之间的差异。
f0brbegy2#
mesos跟踪“分配”而不是实际使用情况。如果你的应用程序什么都没做,并不意味着下一刻它什么都没做。这意味着,如果你的应用程序请求1个cpu,那么这个cpu是为应用程序保留的。
现在,如果您不想精确地估计应用程序正在使用的资源,您可能需要查看mesos中的超额订阅。但是,您必须记住,一旦应用程序请求了超额订阅的资源(已为其分配了这些资源),使用超额订阅资源的应用程序可能会被终止。